Repository: commons-lang
Updated Branches:
  refs/heads/master 6f03c0ce1 -> 96a1a31d7


[LANG-1360] Add methods to ClassUtils to get various forms of class
names in a null-safe manner.

Project: http://git-wip-us.apache.org/repos/asf/commons-lang/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-lang/commit/96a1a31d
Tree: http://git-wip-us.apache.org/repos/asf/commons-lang/tree/96a1a31d
Diff: http://git-wip-us.apache.org/repos/asf/commons-lang/diff/96a1a31d

Branch: refs/heads/master
Commit: 96a1a31d734e663af5c9bcda58c7bb5870e8a363
Parents: 6f03c0c
Author: Gary Gregory <ggreg...@apache.org>
Authored: Mon Oct 23 11:37:18 2017 -0600
Committer: Gary Gregory <ggreg...@apache.org>
Committed: Mon Oct 23 11:37:18 2017 -0600

----------------------------------------------------------------------
 .../apache/commons/lang3/ClassUtilsTest.java    | 79 +++++++++++++++++---
 1 file changed, 67 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-lang/blob/96a1a31d/src/test/java/org/apache/commons/lang3/ClassUtilsTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/lang3/ClassUtilsTest.java 
b/src/test/java/org/apache/commons/lang3/ClassUtilsTest.java
index 6009a68..99eb466 100644
--- a/src/test/java/org/apache/commons/lang3/ClassUtilsTest.java
+++ b/src/test/java/org/apache/commons/lang3/ClassUtilsTest.java
@@ -265,6 +265,51 @@ public class ClassUtilsTest  {
     }
     
     @Test
+    public void test_getCanonicalName_Class_String() {
+        assertEquals("org.apache.commons.lang3.ClassUtils", 
ClassUtils.getCanonicalName(ClassUtils.class, "X"));
+        assertEquals("java.util.Map.Entry", 
ClassUtils.getCanonicalName(Map.Entry.class, "X"));
+        assertEquals("X", ClassUtils.getCanonicalName((Class<?>) null, "X"));
+
+        assertEquals("java.lang.String[]", 
ClassUtils.getCanonicalName(String[].class, "X"));
+        assertEquals("java.util.Map.Entry[]", 
ClassUtils.getCanonicalName(Map.Entry[].class, "X"));
+
+        // Primitives
+        assertEquals("boolean", ClassUtils.getCanonicalName(boolean.class, 
"X"));
+        assertEquals("byte", ClassUtils.getCanonicalName(byte.class, "X"));
+        assertEquals("char", ClassUtils.getCanonicalName(char.class, "X"));
+        assertEquals("short", ClassUtils.getCanonicalName(short.class, "X"));
+        assertEquals("int", ClassUtils.getCanonicalName(int.class, "X"));
+        assertEquals("long", ClassUtils.getCanonicalName(long.class, "X"));
+        assertEquals("float", ClassUtils.getCanonicalName(float.class, "X"));
+        assertEquals("double", ClassUtils.getCanonicalName(double.class, "X"));
+
+        // Primitive Arrays
+        assertEquals("boolean[]", ClassUtils.getCanonicalName(boolean[].class, 
"X"));
+        assertEquals("byte[]", ClassUtils.getCanonicalName(byte[].class, "X"));
+        assertEquals("char[]", ClassUtils.getCanonicalName(char[].class, "X"));
+        assertEquals("short[]", ClassUtils.getCanonicalName(short[].class, 
"X"));
+        assertEquals("int[]", ClassUtils.getCanonicalName(int[].class, "X"));
+        assertEquals("long[]", ClassUtils.getCanonicalName(long[].class, "X"));
+        assertEquals("float[]", ClassUtils.getCanonicalName(float[].class, 
"X"));
+        assertEquals("double[]", ClassUtils.getCanonicalName(double[].class, 
"X"));
+
+        // Arrays of arrays of ...
+        assertEquals("java.lang.String[][]", 
ClassUtils.getCanonicalName(String[][].class, "X"));
+        assertEquals("java.lang.String[][][]", 
ClassUtils.getCanonicalName(String[][][].class, "X"));
+        assertEquals("java.lang.String[][][][]", 
ClassUtils.getCanonicalName(String[][][][].class, "X"));
+
+        // Inner types
+        class Named {
+            // empty
+        }
+        assertEquals("X", ClassUtils.getCanonicalName(new Object() {
+            // empty
+        }.getClass(), "X"));
+        assertEquals("X", ClassUtils.getCanonicalName(Named.class, "X"));
+        assertEquals("org.apache.commons.lang3.ClassUtilsTest.Inner", 
ClassUtils.getCanonicalName(Inner.class, "X"));
+    }
+    
+    @Test
     public void test_getName_Class() {
         assertEquals("org.apache.commons.lang3.ClassUtils", 
ClassUtils.getName(ClassUtils.class));
         assertEquals("java.util.Map$Entry", 
ClassUtils.getName(Map.Entry.class));
@@ -302,10 +347,10 @@ public class ClassUtilsTest  {
         class Named {
             // empty
         }
-        assertEquals("org.apache.commons.lang3.ClassUtilsTest$2", 
ClassUtils.getName(new Object() {
+        assertEquals("org.apache.commons.lang3.ClassUtilsTest$3", 
ClassUtils.getName(new Object() {
             // empty
         }.getClass()));
-        assertEquals("org.apache.commons.lang3.ClassUtilsTest$2Named", 
ClassUtils.getName(Named.class));
+        assertEquals("org.apache.commons.lang3.ClassUtilsTest$3Named", 
ClassUtils.getName(Named.class));
         assertEquals("org.apache.commons.lang3.ClassUtilsTest$Inner", 
ClassUtils.getName(Inner.class));
     }
     
@@ -320,10 +365,10 @@ public class ClassUtilsTest  {
         class Named {
             // empty
         }
-        assertEquals("org.apache.commons.lang3.ClassUtilsTest$3", 
ClassUtils.getName(new Object() {
+        assertEquals("org.apache.commons.lang3.ClassUtilsTest$4", 
ClassUtils.getName(new Object() {
             // empty
         }, "<null>"));
-        assertEquals("org.apache.commons.lang3.ClassUtilsTest$3Named", 
ClassUtils.getName(new Named(), "<null>"));
+        assertEquals("org.apache.commons.lang3.ClassUtilsTest$4Named", 
ClassUtils.getName(new Named(), "<null>"));
         assertEquals("org.apache.commons.lang3.ClassUtilsTest$Inner", 
ClassUtils.getName(new Inner(), "<null>"));
     }
     
@@ -451,10 +496,10 @@ public class ClassUtilsTest  {
         class Named {
             // empty
         }
-        assertEquals("ClassUtilsTest.7", ClassUtils.getShortCanonicalName(new 
Object() {
+        assertEquals("ClassUtilsTest.8", ClassUtils.getShortCanonicalName(new 
Object() {
             // empty
         }.getClass()));
-        assertEquals("ClassUtilsTest.7Named", 
ClassUtils.getShortCanonicalName(Named.class));
+        assertEquals("ClassUtilsTest.8Named", 
ClassUtils.getShortCanonicalName(Named.class));
         assertEquals("ClassUtilsTest.Inner", 
ClassUtils.getShortCanonicalName(Inner.class));
     }
 
@@ -471,10 +516,10 @@ public class ClassUtilsTest  {
         class Named {
             // empty
         }
-        assertEquals("ClassUtilsTest.8", ClassUtils.getShortCanonicalName(new 
Object() {
+        assertEquals("ClassUtilsTest.9", ClassUtils.getShortCanonicalName(new 
Object() {
             // empty
         }, "<null>"));
-        assertEquals("ClassUtilsTest.8Named", 
ClassUtils.getShortCanonicalName(new Named(), "<null>"));
+        assertEquals("ClassUtilsTest.9Named", 
ClassUtils.getShortCanonicalName(new Named(), "<null>"));
         assertEquals("ClassUtilsTest.Inner", 
ClassUtils.getShortCanonicalName(new Inner(), "<null>"));
     }
 
@@ -535,10 +580,10 @@ public class ClassUtilsTest  {
         class Named {
             // empty
         }
-        assertEquals("ClassUtilsTest.9", ClassUtils.getShortClassName(new 
Object() {
+        assertEquals("ClassUtilsTest.10", ClassUtils.getShortClassName(new 
Object() {
             // empty
         }.getClass()));
-        assertEquals("ClassUtilsTest.9Named", 
ClassUtils.getShortClassName(Named.class));
+        assertEquals("ClassUtilsTest.10Named", 
ClassUtils.getShortClassName(Named.class));
         assertEquals("ClassUtilsTest.Inner", 
ClassUtils.getShortClassName(Inner.class));
     }
 
@@ -554,10 +599,10 @@ public class ClassUtilsTest  {
         class Named {
             // empty
         }
-        assertEquals("ClassUtilsTest.10", ClassUtils.getShortClassName(new 
Object() {
+        assertEquals("ClassUtilsTest.11", ClassUtils.getShortClassName(new 
Object() {
             // empty
         }, "<null>"));
-        assertEquals("ClassUtilsTest.10Named", 
ClassUtils.getShortClassName(new Named(), "<null>"));
+        assertEquals("ClassUtilsTest.11Named", 
ClassUtils.getShortClassName(new Named(), "<null>"));
         assertEquals("ClassUtilsTest.Inner", ClassUtils.getShortClassName(new 
Inner(), "<null>"));
     }
 
@@ -616,10 +661,20 @@ public class ClassUtilsTest  {
 
     @Test
     public void test_getSimpleName_Object() {
+        assertEquals("ClassUtils", ClassUtils.getSimpleName(new ClassUtils()));
+        assertEquals("Inner", ClassUtils.getSimpleName(new Inner()));
+        assertEquals("String", ClassUtils.getSimpleName("hello"));
+        assertEquals(StringUtils.EMPTY, ClassUtils.getSimpleName(null));
+        assertEquals(StringUtils.EMPTY, ClassUtils.getSimpleName(null));
+    }
+
+    @Test
+    public void test_getSimpleName_Object_String() {
         assertEquals("ClassUtils", ClassUtils.getSimpleName(new ClassUtils(), 
"<null>"));
         assertEquals("Inner", ClassUtils.getSimpleName(new Inner(), "<null>"));
         assertEquals("String", ClassUtils.getSimpleName("hello", "<null>"));
         assertEquals("<null>", ClassUtils.getSimpleName(null, "<null>"));
+        assertEquals(null, ClassUtils.getSimpleName(null, null));
     }
 
     @Test

Reply via email to