diff --git a/src/test/java/org/apache/commons/lang3/reflect/TypeUtilsTest.java b/src/test/java/org/apache/commons/lang3/reflect/TypeUtilsTest.java index fb7a41206..67de3b19e 100644 --- a/src/test/java/org/apache/commons/lang3/reflect/TypeUtilsTest.java +++ b/src/test/java/org/apache/commons/lang3/reflect/TypeUtilsTest.java @@ -122,14 +122,6 @@ class AClass extends AAClass.BBClass { abstract class Test1 { public abstract Object m0(); public abstract String[] m1(); - public abstract E[] m2(); - public abstract List m3(); - public abstract > List> m4(); - public abstract List> m5(); - public abstract List> m6(); - public abstract List m7(); - public abstract Map, ? super Enum> m8(); - public abstract Map m9(); public abstract Map m10(); public abstract Map> m11(); public abstract List m12(); @@ -138,6 +130,14 @@ abstract class Test1 { public abstract G m15(); public abstract List m16(); public abstract Enum m17(); + public abstract E[] m2(); + public abstract List m3(); + public abstract > List> m4(); + public abstract List> m5(); + public abstract List> m6(); + public abstract List m7(); + public abstract Map, ? super Enum> m8(); + public abstract Map m9(); } /** @@ -823,6 +823,25 @@ public class TypeUtilsTest extends AbstractLangTest { () -> String.format("TypeUtils.isAssignable(%s, %s)", paramType, arrayType)); } + @Test + public void testIsAssignableGenericArrayTypeToObject() { + final Class rawClass = Constructor.class; + final Class typeArgClass = Insets.class; + // Builds a ParameterizedType for Constructor + final ParameterizedType paramType = TypeUtils.parameterize(rawClass, typeArgClass); + assertEquals(rawClass, paramType.getRawType()); + assertEquals(typeArgClass, paramType.getActualTypeArguments()[0]); + + assertTrue(Object.class.isAssignableFrom(paramType.getClass())); + assertFalse(paramType.getClass().isAssignableFrom(Object.class)); + + final Type testType = Object.class; + assertTrue(TypeUtils.isAssignable(paramType, testType), + () -> String.format("TypeUtils.isAssignable(%s, %s)", paramType, testType)); + assertFalse(TypeUtils.isAssignable(testType, paramType), + () -> String.format("TypeUtils.isAssignable(%s, %s)", testType, paramType)); + } + @Test public void testIsAssignableGenericArrayTypeToParameterizedType() { final Class rawClass = Constructor.class; @@ -864,25 +883,6 @@ public class TypeUtilsTest extends AbstractLangTest { () -> String.format("TypeUtils.isAssignable(%s, %s)", testType, paramType)); } - @Test - public void testIsAssignableGenericArrayTypeToObject() { - final Class rawClass = Constructor.class; - final Class typeArgClass = Insets.class; - // Builds a ParameterizedType for Constructor - final ParameterizedType paramType = TypeUtils.parameterize(rawClass, typeArgClass); - assertEquals(rawClass, paramType.getRawType()); - assertEquals(typeArgClass, paramType.getActualTypeArguments()[0]); - - assertTrue(Object.class.isAssignableFrom(paramType.getClass())); - assertFalse(paramType.getClass().isAssignableFrom(Object.class)); - - final Type testType = Object.class; - assertTrue(TypeUtils.isAssignable(paramType, testType), - () -> String.format("TypeUtils.isAssignable(%s, %s)", paramType, testType)); - assertFalse(TypeUtils.isAssignable(testType, paramType), - () -> String.format("TypeUtils.isAssignable(%s, %s)", testType, paramType)); - } - @SuppressWarnings("boxing") // boxing is deliberate here @Test public void testIsInstance() throws SecurityException, NoSuchFieldException {