package play.modules.scaffold.utils; import static org.junit.Assert.*; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; import org.junit.Test; import play.modules.scaffold.entity.MyEntity; import play.modules.scaffold.entity.MyPolymorphicEntity; public class ClassesTest { @Test public void testSuperClasses() { List<String> classes = Classes.superclasses(MyEntity.class); assertTrue(classes.contains("java.lang.Object")); assertTrue(classes.contains("play.db.jpa.Model")); } // make sure we don't see private fields @Test public void testPublicFields() { List<Field> fields = Classes.publicFields(MyPolymorphicEntity.class); List<String> fieldNames = new ArrayList<String>(); for (Field field : fields) { fieldNames.add(field.getName()); } assertFalse(fieldNames.contains("cantSeeMe")); // from // MyPolymorphicEntity assertTrue(fieldNames.contains("aLongString")); // from // MyPolymorphicEntity assertTrue(fieldNames.contains("anEnum")); // from MyEntity assertTrue(fieldNames.contains("id")); // from Model assertTrue(fieldNames.contains("willBeSaved")); // from JPASupport } @Test public void testPackageName() { String packageName = Classes.getPackageName(MyPolymorphicEntity.class); assertEquals("play.modules.scaffold.entity", packageName); } @Test public void testIsNumeric() { assertTrue(Classes.isNumeric(Long.class)); assertFalse(Classes.isNumeric(String.class)); } }