package test.el; import test.model.EPerson; import test.model.Person; import test.model.PersonHolder; import com.towel.bean.DefaultFormatter; import com.towel.el.FieldResolver; import com.towel.el.annotation.AnnotationResolver; import com.towel.el.handler.FieldHandler; public class FieldAcessHandlerTest { public void testFieldAccess() { Person p = new Person("Mark", 19); FieldHandler handler = new FieldHandler(); handler.resolveField(Person.class, "name"); System.out.println(handler.getValue(p, new DefaultFormatter()).equals( "Mark")); } public void testInnerFieldAccess() { Person p = new Person("Mark", 19); Person other = new Person("Marcos", 40); p.setParent(other); FieldHandler handler = new FieldHandler(); handler.resolveField(Person.class, "parent.name"); System.out.println(handler.getValue(p, new DefaultFormatter()).equals( "Marcos")); } public void testHierarchyFieldAccess() { Person p = new EPerson("Mark", 19); FieldHandler handler = new FieldHandler(); handler.resolveField(EPerson.class, "name"); System.out.println(handler.getValue(p, new DefaultFormatter()).equals( "Mark")); } public void testHierarchyFieldAccess2() { PersonHolder holder = new PersonHolder(); holder.setPerson(new EPerson("Mark", 19)); FieldHandler handler = new FieldHandler(); handler.resolveField(PersonHolder.class, "person.name"); System.out.println(handler.getValue(holder, new DefaultFormatter()) .equals("Mark")); } public void testHierarchyInnerFieldAccess() { Person p = new EPerson("Mark", 19); Person other = new EPerson("Marcos", 40); p.setParent(other); FieldHandler handler = new FieldHandler(); handler.resolveField(EPerson.class, "parent.name"); System.out.println(handler.getValue(p, new DefaultFormatter()).equals( "Marcos")); } public void testAnnotationResolver() { Person p = new Person("Mark", 19); AnnotationResolver solver = new AnnotationResolver(Person.class); FieldResolver[] res = solver.resolve("name"); System.out.println(res[0].getValue(p).equals("Mark")); } public void testAnnotationResolverInner() { Person p = new Person("Mark", 19); p.setParent(new Person("Markk", 40)); AnnotationResolver solver = new AnnotationResolver(Person.class); FieldResolver[] res = solver.resolve("parent.name"); System.out.println(res[0].getValue(p).equals("Markk")); } public void testAnnotationResolverHierarq() { EPerson p = new EPerson("Mark", 19); AnnotationResolver solver = new AnnotationResolver(EPerson.class); FieldResolver[] res = solver.resolve("name"); System.out.println(res[0].getValue(p).equals("Mark")); } public static void main(String[] args) { FieldAcessHandlerTest tests = new FieldAcessHandlerTest(); tests.testFieldAccess(); tests.testInnerFieldAccess(); tests.testHierarchyFieldAccess(); tests.testHierarchyInnerFieldAccess(); tests.testAnnotationResolver(); tests.testAnnotationResolverInner(); tests.testAnnotationResolverHierarq(); tests.testHierarchyFieldAccess2(); } }