Author: joehni Date: Mon Jul 4 22:49:33 2011 New Revision: 1142841 URL: http://svn.apache.org/viewvc?rev=1142841&view=rev Log: Enrich ClasUtils tests for inner types.
Modified: commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/ClassUtilsTest.java Modified: commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/ClassUtilsTest.java URL: http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/ClassUtilsTest.java?rev=1142841&r1=1142840&r2=1142841&view=diff ============================================================================== --- commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/ClassUtilsTest.java (original) +++ commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/ClassUtilsTest.java Mon Jul 4 22:49:33 2011 @@ -62,6 +62,12 @@ public class ClassUtilsTest extends Test assertEquals("ClassUtilsTest.Inner", ClassUtils.getShortClassName(new Inner(), "<null>")); assertEquals("String", ClassUtils.getShortClassName("hello", "<null>")); assertEquals("<null>", ClassUtils.getShortClassName(null, "<null>")); + + // Inner types + class Named extends Object {}; + assertEquals("ClassUtilsTest.1", ClassUtils.getShortClassName(new Object(){}, "<null>")); + assertEquals("ClassUtilsTest.1Named", ClassUtils.getShortClassName(new Named(), "<null>")); + assertEquals("ClassUtilsTest.Inner", ClassUtils.getShortClassName(new Inner(), "<null>")); } public void test_getShortClassName_Class() { @@ -97,6 +103,12 @@ public class ClassUtilsTest extends Test assertEquals("String[][]", ClassUtils.getShortClassName(String[][].class)); assertEquals("String[][][]", ClassUtils.getShortClassName(String[][][].class)); assertEquals("String[][][][]", ClassUtils.getShortClassName(String[][][][].class)); + + // Inner types + class Named extends Object {}; + assertEquals("ClassUtilsTest.2", ClassUtils.getShortClassName(new Object(){}.getClass())); + assertEquals("ClassUtilsTest.2Named", ClassUtils.getShortClassName(Named.class)); + assertEquals("ClassUtilsTest.Inner", ClassUtils.getShortClassName(Inner.class)); } @@ -141,6 +153,11 @@ public class ClassUtilsTest extends Test assertEquals("String[][]", ClassUtils.getSimpleName(String[][].class)); assertEquals("String[][][]", ClassUtils.getSimpleName(String[][][].class)); assertEquals("String[][][][]", ClassUtils.getSimpleName(String[][][][].class)); + + // On-the-fly types + class Named extends Object {}; + assertEquals("", ClassUtils.getSimpleName(new Object(){}.getClass())); + assertEquals("Named", ClassUtils.getSimpleName(Named.class)); } public void test_getSimpleName_Object() { @@ -179,6 +196,11 @@ public class ClassUtilsTest extends Test assertEquals("java.lang", ClassUtils.getPackageName(String[][].class)); assertEquals("java.lang", ClassUtils.getPackageName(String[][][].class)); assertEquals("java.lang", ClassUtils.getPackageName(String[][][][].class)); + + // On-the-fly types + class Named extends Object {}; + assertEquals("org.apache.commons.lang3", ClassUtils.getPackageName(new Object(){}.getClass())); + assertEquals("org.apache.commons.lang3", ClassUtils.getPackageName(Named.class)); } public void test_getPackageName_String() { @@ -243,7 +265,7 @@ public class ClassUtilsTest extends Test assertEquals(null, result.get(1)); assertEquals(Object.class, result.get(2)); - @SuppressWarnings("unchecked") // test what happens when non-gneric code adds wrong type of element + @SuppressWarnings("unchecked") // test what happens when non-generic code adds wrong type of element List<Object> olist = (List<Object>)(List<?>)list; olist.add(new Object()); try { @@ -267,7 +289,7 @@ public class ClassUtilsTest extends Test assertEquals(null, result.get(1)); assertEquals("java.lang.Object", result.get(2)); - @SuppressWarnings("unchecked") // test what happens when non-gneric code adds wrong type of element + @SuppressWarnings("unchecked") // test what happens when non-generic code adds wrong type of element List<Object> olist = (List<Object>)(List<?>)list; olist.add(new Object()); try { @@ -990,6 +1012,12 @@ public class ClassUtilsTest extends Test assertEquals("ClassUtils[][]", ClassUtils.getShortCanonicalName(new ClassUtils[0][0], "<null>")); assertEquals("int[]", ClassUtils.getShortCanonicalName(new int[0], "<null>")); assertEquals("int[][]", ClassUtils.getShortCanonicalName(new int[0][0], "<null>")); + + // Inner types + class Named extends Object {}; + assertEquals("ClassUtilsTest.6", ClassUtils.getShortCanonicalName(new Object(){}, "<null>")); + assertEquals("ClassUtilsTest.5Named", ClassUtils.getShortCanonicalName(new Named(), "<null>")); + assertEquals("ClassUtilsTest.Inner", ClassUtils.getShortCanonicalName(new Inner(), "<null>")); } public void test_getShortCanonicalName_Class() { @@ -998,6 +1026,12 @@ public class ClassUtilsTest extends Test assertEquals("ClassUtils[][]", ClassUtils.getShortCanonicalName(ClassUtils[][].class)); assertEquals("int[]", ClassUtils.getShortCanonicalName(int[].class)); assertEquals("int[][]", ClassUtils.getShortCanonicalName(int[][].class)); + + // Inner types + class Named extends Object {}; + assertEquals("ClassUtilsTest.7", ClassUtils.getShortCanonicalName(new Object(){}.getClass())); + assertEquals("ClassUtilsTest.6Named", ClassUtils.getShortCanonicalName(Named.class)); + assertEquals("ClassUtilsTest.Inner", ClassUtils.getShortCanonicalName(Inner.class)); } public void test_getShortCanonicalName_String() { @@ -1010,6 +1044,11 @@ public class ClassUtilsTest extends Test assertEquals("int[][]", ClassUtils.getShortCanonicalName("[[I")); assertEquals("int[]", ClassUtils.getShortCanonicalName("int[]")); assertEquals("int[][]", ClassUtils.getShortCanonicalName("int[][]")); + + // Inner types + assertEquals("ClassUtilsTest.6", ClassUtils.getShortCanonicalName("org.apache.commons.lang3.ClassUtilsTest$6")); + assertEquals("ClassUtilsTest.5Named", ClassUtils.getShortCanonicalName("org.apache.commons.lang3.ClassUtilsTest$5Named")); + assertEquals("ClassUtilsTest.Inner", ClassUtils.getShortCanonicalName("org.apache.commons.lang3.ClassUtilsTest$Inner")); } public void test_getPackageCanonicalName_Object() { @@ -1019,6 +1058,12 @@ public class ClassUtilsTest extends Test assertEquals("org.apache.commons.lang3", ClassUtils.getPackageCanonicalName(new ClassUtils[0][0], "<null>")); assertEquals("", ClassUtils.getPackageCanonicalName(new int[0], "<null>")); assertEquals("", ClassUtils.getPackageCanonicalName(new int[0][0], "<null>")); + + // Inner types + class Named extends Object {}; + assertEquals("org.apache.commons.lang3", ClassUtils.getPackageCanonicalName(new Object(){}, "<null>")); + assertEquals("org.apache.commons.lang3", ClassUtils.getPackageCanonicalName(new Named(), "<null>")); + assertEquals("org.apache.commons.lang3", ClassUtils.getPackageCanonicalName(new Inner(), "<null>")); } public void test_getPackageCanonicalName_Class() { @@ -1027,6 +1072,12 @@ public class ClassUtilsTest extends Test assertEquals("org.apache.commons.lang3", ClassUtils.getPackageCanonicalName(ClassUtils[][].class)); assertEquals("", ClassUtils.getPackageCanonicalName(int[].class)); assertEquals("", ClassUtils.getPackageCanonicalName(int[][].class)); + + // Inner types + class Named extends Object {}; + assertEquals("org.apache.commons.lang3", ClassUtils.getPackageCanonicalName(new Object(){}.getClass())); + assertEquals("org.apache.commons.lang3", ClassUtils.getPackageCanonicalName(Named.class)); + assertEquals("org.apache.commons.lang3", ClassUtils.getPackageCanonicalName(Inner.class)); } public void test_getPackageCanonicalName_String() { @@ -1044,6 +1095,11 @@ public class ClassUtilsTest extends Test assertEquals("", ClassUtils.getPackageCanonicalName("[[I")); assertEquals("", ClassUtils.getPackageCanonicalName("int[]")); assertEquals("", ClassUtils.getPackageCanonicalName("int[][]")); + + // Inner types + assertEquals("org.apache.commons.lang3", ClassUtils.getPackageCanonicalName("org.apache.commons.lang3.ClassUtilsTest$6")); + assertEquals("org.apache.commons.lang3", ClassUtils.getPackageCanonicalName("org.apache.commons.lang3.ClassUtilsTest$5Named")); + assertEquals("org.apache.commons.lang3", ClassUtils.getPackageCanonicalName("org.apache.commons.lang3.ClassUtilsTest$Inner")); } }