package bluej.parser.entity;

import java.lang.reflect.Modifier;
import java.util.HashMap;

import bluej.debugger.gentype.FieldReflective;
import bluej.debugger.gentype.GenTypeClass;
import bluej.debugger.gentype.JavaPrimitiveType;
import bluej.debugger.gentype.TestReflective;

public class EntityTests
extends junit.framework.TestCase{    
   public void testValueSuperclassFieldAccess()
   {        
      TestReflective base = new TestReflective("BaseClass");
       
      TestReflective sub = new TestReflective("SubClass", base);
       
      TestReflective subsub = new TestReflective("SubSubClass", sub);
        
       
      
      base.fields = new HashMap<String,FieldReflective>();
       
      FieldReflective fref = new FieldReflective("aField", JavaPrimitiveType.getInt(), Modifier.PUBLIC, base);
      base.fields.put("aField", fref);
        
       
      
      ValueEntity vent = new ValueEntity(new GenTypeClass(subsub));
      JavaEntity aFieldEnt = vent.getSubentity("aField", subsub);
      assertNotNull(aFieldEnt);
      aFieldEnt = aFieldEnt.resolveAsValue();
      assertNotNull(aFieldEnt);
      assertEquals("int", aFieldEnt.getType().toString());     
      }
    
   
   public void testTypeSuperclassFieldAccess()
   {        
      TestReflective base = new TestReflective("BaseClass");
       
      TestReflective sub = new TestReflective("SubClass", base);
       
      TestReflective subsub = new TestReflective("SubSubClass", sub);
        
       
      
      base.fields = new HashMap<String,FieldReflective>();
       
      FieldReflective fref = new FieldReflective("aField", JavaPrimitiveType.getInt(), Modifier.PUBLIC, base);
      base.fields.put("aField", fref);
       
      fref = new FieldReflective("sField", JavaPrimitiveType.getDouble(), Modifier.PUBLIC | Modifier.STATIC, base);
      base.fields.put("sField", fref);
        
       
      
      TypeEntity tent = new TypeEntity(new GenTypeClass(subsub));
      JavaEntity aFieldEnt = tent.getSubentity("aField", subsub);
      assertNull(aFieldEnt); 
        
       
      
      aFieldEnt = tent.getSubentity("sField", subsub);
      assertNotNull(aFieldEnt);
      aFieldEnt = aFieldEnt.resolveAsValue();
      assertNotNull(aFieldEnt);
      assertEquals("double", aFieldEnt.getType().toString());     
      } 
   }
top, use, map, class EntityTests

.   testValueSuperclassFieldAccess
.   testTypeSuperclassFieldAccess




69 neLoCode + 0 LoComm