Skip to content

Commit 076de3f

Browse files
dupirefrecheyne
authored andcommitted
BAEL-2309 Retrieving a Class Name in Java (eugenp#5716)
* [BAEL-2309] SomeClass and its test * [BAEL-2309] Fixing test naming * [BAEL-2309] Changed name for RetrievingClassName * [BAEL-2309] Updating package name * [BAEL-2309] Fix comment mistake * [BAEL-2309] Fixing test class name
1 parent 608fe77 commit 076de3f

2 files changed

Lines changed: 165 additions & 0 deletions

File tree

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.baeldung.className;
2+
3+
public class RetrievingClassName {
4+
5+
public class InnerClass {
6+
7+
}
8+
9+
}
Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
package com.baeldung.className;
2+
3+
import org.junit.Test;
4+
5+
import static org.junit.Assert.assertEquals;
6+
import static org.junit.Assert.assertNull;
7+
8+
public class RetrievingClassNameUnitTest {
9+
10+
// Retrieving Simple Name
11+
@Test
12+
public void givenRetrievingClassName_whenGetSimpleName_thenRetrievingClassName() {
13+
assertEquals("RetrievingClassName", RetrievingClassName.class.getSimpleName());
14+
}
15+
16+
@Test
17+
public void givenPrimitiveInt_whenGetSimpleName_thenInt() {
18+
assertEquals("int", int.class.getSimpleName());
19+
}
20+
21+
@Test
22+
public void givenRetrievingClassNameArray_whenGetSimpleName_thenRetrievingClassNameWithBrackets() {
23+
assertEquals("RetrievingClassName[]", RetrievingClassName[].class.getSimpleName());
24+
assertEquals("RetrievingClassName[][]", RetrievingClassName[][].class.getSimpleName());
25+
}
26+
27+
@Test
28+
public void givenAnonymousClass_whenGetSimpleName_thenEmptyString() {
29+
assertEquals("", new RetrievingClassName() {}.getClass().getSimpleName());
30+
}
31+
32+
// Retrieving Other Names
33+
// - Primitive Types
34+
@Test
35+
public void givenPrimitiveInt_whenGetName_thenInt() {
36+
assertEquals("int", int.class.getName());
37+
}
38+
39+
@Test
40+
public void givenPrimitiveInt_whenGetTypeName_thenInt() {
41+
assertEquals("int", int.class.getTypeName());
42+
}
43+
44+
@Test
45+
public void givenPrimitiveInt_whenGetCanonicalName_thenInt() {
46+
assertEquals("int", int.class.getCanonicalName());
47+
}
48+
49+
// - Object Types
50+
@Test
51+
public void givenRetrievingClassName_whenGetName_thenCanonicalName() {
52+
assertEquals("com.baeldung.className.RetrievingClassName", RetrievingClassName.class.getName());
53+
}
54+
55+
@Test
56+
public void givenRetrievingClassName_whenGetTypeName_thenCanonicalName() {
57+
assertEquals("com.baeldung.className.RetrievingClassName", RetrievingClassName.class.getTypeName());
58+
}
59+
60+
@Test
61+
public void givenRetrievingClassName_whenGetCanonicalName_thenCanonicalName() {
62+
assertEquals("com.baeldung.className.RetrievingClassName", RetrievingClassName.class.getCanonicalName());
63+
}
64+
65+
// - Inner Classes
66+
@Test
67+
public void givenRetrievingClassNameInnerClass_whenGetName_thenCanonicalNameWithDollarSeparator() {
68+
assertEquals("com.baeldung.className.RetrievingClassName$InnerClass", RetrievingClassName.InnerClass.class.getName());
69+
}
70+
71+
@Test
72+
public void givenRetrievingClassNameInnerClass_whenGetTypeName_thenCanonicalNameWithDollarSeparator() {
73+
assertEquals("com.baeldung.className.RetrievingClassName$InnerClass", RetrievingClassName.InnerClass.class.getTypeName());
74+
}
75+
76+
@Test
77+
public void givenRetrievingClassNameInnerClass_whenGetCanonicalName_thenCanonicalName() {
78+
assertEquals("com.baeldung.className.RetrievingClassName.InnerClass", RetrievingClassName.InnerClass.class.getCanonicalName());
79+
}
80+
81+
// - Anonymous Classes
82+
@Test
83+
public void givenAnonymousClass_whenGetName_thenCallingClassCanonicalNameWithDollarSeparatorAndCountNumber() {
84+
// These are the second and third appearences of an anonymous class in RetrievingClassNameUnitTest, hence $2 and $3 expectations
85+
assertEquals("com.baeldung.className.RetrievingClassNameUnitTest$2", new RetrievingClassName() {}.getClass().getName());
86+
assertEquals("com.baeldung.className.RetrievingClassNameUnitTest$3", new RetrievingClassName() {}.getClass().getName());
87+
}
88+
89+
@Test
90+
public void givenAnonymousClass_whenGetTypeName_thenCallingClassCanonicalNameWithDollarSeparatorAndCountNumber() {
91+
// These are the fourth and fifth appearences of an anonymous class in RetrievingClassNameUnitTest, hence $4 and $5 expectations
92+
assertEquals("com.baeldung.className.RetrievingClassNameUnitTest$4", new RetrievingClassName() {}.getClass().getTypeName());
93+
assertEquals("com.baeldung.className.RetrievingClassNameUnitTest$5", new RetrievingClassName() {}.getClass().getTypeName());
94+
}
95+
96+
@Test
97+
public void givenAnonymousClass_whenGetCanonicalName_thenNull() {
98+
assertNull(new RetrievingClassName() {}.getClass().getCanonicalName());
99+
}
100+
101+
// - Arrays
102+
@Test
103+
public void givenPrimitiveIntArray_whenGetName_thenOpeningBracketsAndPrimitiveIntLetter() {
104+
assertEquals("[I", int[].class.getName());
105+
assertEquals("[[I", int[][].class.getName());
106+
}
107+
108+
@Test
109+
public void givenRetrievingClassNameArray_whenGetName_thenOpeningBracketsLetterLAndRetrievingClassNameGetName() {
110+
assertEquals("[Lcom.baeldung.className.RetrievingClassName;", RetrievingClassName[].class.getName());
111+
assertEquals("[[Lcom.baeldung.className.RetrievingClassName;", RetrievingClassName[][].class.getName());
112+
}
113+
114+
@Test
115+
public void givenRetrievingClassNameInnerClassArray_whenGetName_thenOpeningBracketsLetterLAndRetrievingClassNameInnerClassGetName() {
116+
assertEquals("[Lcom.baeldung.className.RetrievingClassName$InnerClass;", RetrievingClassName.InnerClass[].class.getName());
117+
assertEquals("[[Lcom.baeldung.className.RetrievingClassName$InnerClass;", RetrievingClassName.InnerClass[][].class.getName());
118+
}
119+
120+
@Test
121+
public void givenPrimitiveIntArray_whenGetTypeName_thenPrimitiveIntGetTypeNameWithBrackets() {
122+
assertEquals("int[]", int[].class.getTypeName());
123+
assertEquals("int[][]", int[][].class.getTypeName());
124+
}
125+
126+
@Test
127+
public void givenRetrievingClassNameArray_whenGetTypeName_thenRetrievingClassNameGetTypeNameWithBrackets() {
128+
assertEquals("com.baeldung.className.RetrievingClassName[]", RetrievingClassName[].class.getTypeName());
129+
assertEquals("com.baeldung.className.RetrievingClassName[][]", RetrievingClassName[][].class.getTypeName());
130+
}
131+
132+
@Test
133+
public void givenRetrievingClassNameInnerClassArray_whenGetTypeName_thenRetrievingClassNameInnerClassGetTypeNameWithBrackets() {
134+
assertEquals("com.baeldung.className.RetrievingClassName$InnerClass[]", RetrievingClassName.InnerClass[].class.getTypeName());
135+
assertEquals("com.baeldung.className.RetrievingClassName$InnerClass[][]", RetrievingClassName.InnerClass[][].class.getTypeName());
136+
}
137+
138+
@Test
139+
public void givenPrimitiveIntArray_whenGetCanonicalName_thenPrimitiveIntGetCanonicalNameWithBrackets() {
140+
assertEquals("int[]", int[].class.getCanonicalName());
141+
assertEquals("int[][]", int[][].class.getCanonicalName());
142+
}
143+
144+
@Test
145+
public void givenRetrievingClassNameArray_whenGetCanonicalName_thenRetrievingClassNameGetCanonicalNameWithBrackets() {
146+
assertEquals("com.baeldung.className.RetrievingClassName[]", RetrievingClassName[].class.getCanonicalName());
147+
assertEquals("com.baeldung.className.RetrievingClassName[][]", RetrievingClassName[][].class.getCanonicalName());
148+
}
149+
150+
@Test
151+
public void givenRetrievingClassNameInnerClassArray_whenGetCanonicalName_thenRetrievingClassNameInnerClassGetCanonicalNameWithBrackets() {
152+
assertEquals("com.baeldung.className.RetrievingClassName.InnerClass[]", RetrievingClassName.InnerClass[].class.getCanonicalName());
153+
assertEquals("com.baeldung.className.RetrievingClassName.InnerClass[][]", RetrievingClassName.InnerClass[][].class.getCanonicalName());
154+
}
155+
156+
}

0 commit comments

Comments
 (0)