private static String getVarName(Type type) { if (type instanceof TypeExtends) { return ((TypeExtends) type).getVarName(); } else if (type instanceof TypeSuper) { return ((TypeSuper) type).getVarName(); } else { return null; } }
@Test public void base_base2() throws SecurityException, NoSuchFieldException { TypeFactory typeFactory = new TypeFactory(); Field field = Base.class.getDeclaredField("base2"); Type type = typeFactory.get(field.getType(), field.getGenericType()); assertEquals(2, type.getParameters().size()); assertNull(((TypeExtends) type.getParameters().get(0)).getVarName()); assertNull(((TypeExtends) type.getParameters().get(1)).getVarName()); }
@Test public void abstractEntity_code() throws SecurityException, NoSuchFieldException { Field field = EmbeddedTest.AbstractEntity.class.getDeclaredField("code"); Type type = factory.get(field.getType(), field.getGenericType()); assertTrue(type instanceof TypeExtends); assertEquals("C", ((TypeExtends) type).getVarName()); }
@Test public void generics_typeVariable() { Type type = factory.getEntityType(Generic2Test.AbstractCollectionAttribute.class); assertEquals(TypeExtends.class, type.getParameters().get(0).getClass()); TypeExtends t = (TypeExtends) type.getParameters().get(0); assertEquals("T", t.getVarName()); }
@Test public void generics_wildcard() throws SecurityException, NoSuchFieldException { Field field = DefaultQueryMetadata.class.getDeclaredField("exprInJoins"); Type type = factory.get(field.getType(), field.getGenericType()); assertEquals(TypeCategory.SET, type.getCategory()); Type parameter = type.getParameters().get(0); assertEquals(Expression.class, parameter.getJavaClass()); parameter = parameter.getParameters().get(0); assertEquals(TypeExtends.class, parameter.getClass()); assertNull(((TypeExtends) parameter).getVarName()); }
@Test public void comparableEntity() { Type type = factory.getEntityType(ComparableEntity.class); //ComparableEntity<T extends Comparable<? super T>> implements Serializable assertEquals(1, type.getParameters().size()); TypeExtends t = (TypeExtends) type.getParameters().get(0); assertEquals("T", t.getVarName()); assertEquals(1, t.getParameters().size()); }
@Test public void Base_base2() throws SecurityException, NoSuchFieldException { TypeFactory typeFactory = new TypeFactory(); Field field = Base.class.getDeclaredField("base2"); Type type = typeFactory.get(field.getType(), field.getGenericType()); assertEquals(2, type.getParameters().size()); assertNull(((TypeExtends)type.getParameters().get(0)).getVarName()); assertNull(((TypeExtends)type.getParameters().get(1)).getVarName()); }
@Test public void AbstractEntity_Code() throws SecurityException, NoSuchFieldException { Field field = EmbeddedTest.AbstractEntity.class.getDeclaredField("code"); Type type = factory.get(field.getType(), field.getGenericType()); assertTrue(type instanceof TypeExtends); assertEquals("C", ((TypeExtends)type).getVarName()); }
@Test public void abstractEntity_code() throws SecurityException, NoSuchFieldException { Field field = EmbeddedTest.AbstractEntity.class.getDeclaredField("code"); Type type = factory.get(field.getType(), field.getGenericType()); assertTrue(type instanceof TypeExtends); assertEquals("C", ((TypeExtends) type).getVarName()); }
@Test public void base_base2() throws SecurityException, NoSuchFieldException { TypeFactory typeFactory = new TypeFactory(); Field field = Base.class.getDeclaredField("base2"); Type type = typeFactory.get(field.getType(), field.getGenericType()); assertEquals(2, type.getParameters().size()); assertNull(((TypeExtends) type.getParameters().get(0)).getVarName()); assertNull(((TypeExtends) type.getParameters().get(1)).getVarName()); }
@Test public void generics_typeVariable() { Type type = factory.getEntityType(Generic2Test.AbstractCollectionAttribute.class); assertEquals(TypeExtends.class, type.getParameters().get(0).getClass()); TypeExtends t = (TypeExtends) type.getParameters().get(0); assertEquals("T", t.getVarName()); }
@Test public void Generics_TypeVariable() { Type type = factory.getEntityType(Generic2Test.AbstractCollectionAttribute.class); assertEquals(TypeExtends.class, type.getParameters().get(0).getClass()); TypeExtends t = (TypeExtends) type.getParameters().get(0); assertEquals("T", t.getVarName()); }
@Test public void generics_wildcard() throws SecurityException, NoSuchFieldException { Field field = DefaultQueryMetadata.class.getDeclaredField("exprInJoins"); Type type = factory.get(field.getType(), field.getGenericType()); assertEquals(TypeCategory.SET, type.getCategory()); Type parameter = type.getParameters().get(0); assertEquals(Expression.class, parameter.getJavaClass()); parameter = parameter.getParameters().get(0); assertEquals(TypeExtends.class, parameter.getClass()); assertNull(((TypeExtends) parameter).getVarName()); }
@Test public void Generics_Wildcard() throws SecurityException, NoSuchFieldException { Field field = DefaultQueryMetadata.class.getDeclaredField("exprInJoins"); Type type = factory.get(field.getType(), field.getGenericType()); assertEquals(TypeCategory.SET, type.getCategory()); Type parameter = type.getParameters().get(0); assertEquals(Expression.class, parameter.getJavaClass()); parameter = parameter.getParameters().get(0); assertEquals(TypeExtends.class, parameter.getClass()); assertNull(((TypeExtends)parameter).getVarName()); }
@Test public void comparableEntity() { Type type = factory.getEntityType(ComparableEntity.class); //ComparableEntity<T extends Comparable<? super T>> implements Serializable assertEquals(1, type.getParameters().size()); TypeExtends t = (TypeExtends) type.getParameters().get(0); assertEquals("T", t.getVarName()); assertEquals(1, t.getParameters().size()); }
@Test public void ComparableEntity() { Type type = factory.getEntityType(ComparableEntity.class); //ComparableEntity<T extends Comparable<? super T>> implements Serializable assertEquals(1, type.getParameters().size()); TypeExtends t = (TypeExtends)type.getParameters().get(0); assertEquals("T", t.getVarName()); assertEquals(1, t.getParameters().size()); }