1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.juneau.commons.reflect;
18
19 import static org.apache.juneau.commons.reflect.ClassArrayFormat.*;
20 import static org.apache.juneau.commons.reflect.ClassNameFormat.*;
21 import static org.junit.jupiter.api.Assertions.*;
22
23 import org.apache.juneau.*;
24 import org.junit.jupiter.api.*;
25
26
27
28
29 class ClassArrayFormat_Test extends TestBase {
30
31
32
33
34
35 @Test
36 void a01_enumValues_exist() {
37 assertNotNull(JVM);
38 assertNotNull(BRACKETS);
39 assertNotNull(WORD);
40 assertEquals(3, ClassArrayFormat.values().length);
41 }
42
43 @Test
44 void a02_enumValueOf_works() {
45 assertEquals(JVM, ClassArrayFormat.valueOf("JVM"));
46 assertEquals(BRACKETS, ClassArrayFormat.valueOf("BRACKETS"));
47 assertEquals(WORD, ClassArrayFormat.valueOf("WORD"));
48 }
49
50
51
52
53
54 @Test
55 void b01_brackets_singleDimensionStringArray() {
56 var ci = ClassInfo.of(String[].class);
57 var result = ci.getNameFormatted(SIMPLE, false, '$', BRACKETS);
58 assertEquals("String[]", result);
59 }
60
61 @Test
62 void b02_brackets_singleDimensionIntArray() {
63 var ci = ClassInfo.of(int[].class);
64 var result = ci.getNameFormatted(SIMPLE, false, '$', BRACKETS);
65 assertEquals("int[]", result);
66 }
67
68 @Test
69 void b03_brackets_singleDimensionBooleanArray() {
70 var ci = ClassInfo.of(boolean[].class);
71 var result = ci.getNameFormatted(SIMPLE, false, '$', BRACKETS);
72 assertEquals("boolean[]", result);
73 }
74
75
76
77
78
79 @Test
80 void c01_brackets_twoDimensionalStringArray() {
81 var ci = ClassInfo.of(String[][].class);
82 var result = ci.getNameFormatted(SIMPLE, false, '$', BRACKETS);
83 assertEquals("String[][]", result);
84 }
85
86 @Test
87 void c02_brackets_threeDimensionalIntArray() {
88 var ci = ClassInfo.of(int[][][].class);
89 var result = ci.getNameFormatted(SIMPLE, false, '$', BRACKETS);
90 assertEquals("int[][][]", result);
91 }
92
93 @Test
94 void c03_brackets_twoDimensionalBooleanArray() {
95 var ci = ClassInfo.of(boolean[][].class);
96 var result = ci.getNameFormatted(SIMPLE, false, '$', BRACKETS);
97 assertEquals("boolean[][]", result);
98 }
99
100
101
102
103
104 @Test
105 void d01_word_singleDimensionStringArray() {
106 var ci = ClassInfo.of(String[].class);
107 var result = ci.getNameFormatted(SIMPLE, false, '$', WORD);
108 assertEquals("StringArray", result);
109 }
110
111 @Test
112 void d02_word_singleDimensionIntArray() {
113 var ci = ClassInfo.of(int[].class);
114 var result = ci.getNameFormatted(SIMPLE, false, '$', WORD);
115 assertEquals("intArray", result);
116 }
117
118 @Test
119 void d03_word_singleDimensionBooleanArray() {
120 var ci = ClassInfo.of(boolean[].class);
121 var result = ci.getNameFormatted(SIMPLE, false, '$', WORD);
122 assertEquals("booleanArray", result);
123 }
124
125
126
127
128
129 @Test
130 void e01_word_twoDimensionalStringArray() {
131 var ci = ClassInfo.of(String[][].class);
132 var result = ci.getNameFormatted(SIMPLE, false, '$', WORD);
133 assertEquals("StringArrayArray", result);
134 }
135
136 @Test
137 void e02_word_threeDimensionalIntArray() {
138 var ci = ClassInfo.of(int[][][].class);
139 var result = ci.getNameFormatted(SIMPLE, false, '$', WORD);
140 assertEquals("intArrayArrayArray", result);
141 }
142
143 @Test
144 void e03_word_twoDimensionalBooleanArray() {
145 var ci = ClassInfo.of(boolean[][].class);
146 var result = ci.getNameFormatted(SIMPLE, false, '$', WORD);
147 assertEquals("booleanArrayArray", result);
148 }
149
150
151
152
153
154 @Test
155 void f01_jvm_singleDimensionStringArray() {
156 var ci = ClassInfo.of(String[].class);
157
158 var jvmName = String[].class.getName();
159 assertEquals("[Ljava.lang.String;", jvmName);
160
161 var result = ci.getNameFormatted(SIMPLE, false, '$', JVM);
162
163 assertTrue(result.contains("String") || result.equals(jvmName));
164 }
165
166 @Test
167 void f02_jvm_singleDimensionIntArray() {
168 var ci = ClassInfo.of(int[].class);
169 var jvmName = int[].class.getName();
170 assertEquals("[I", jvmName);
171 var result = ci.getNameFormatted(SIMPLE, false, '$', JVM);
172 assertTrue(result.contains("int") || result.equals(jvmName));
173 }
174
175 @Test
176 void f03_jvm_twoDimensionalStringArray() {
177 var ci = ClassInfo.of(String[][].class);
178 var jvmName = String[][].class.getName();
179 assertEquals("[[Ljava.lang.String;", jvmName);
180 var result = ci.getNameFormatted(SIMPLE, false, '$', JVM);
181 assertTrue(result.contains("String") || result.equals(jvmName));
182 }
183
184
185
186
187
188 @Test
189 void g01_appendNameFormatted_brackets_appendsCorrectly() {
190 var ci = ClassInfo.of(String[][].class);
191 var sb = new StringBuilder();
192 ci.appendNameFormatted(sb, SIMPLE, false, '$', BRACKETS);
193 assertEquals("String[][]", sb.toString());
194 }
195
196 @Test
197 void g02_appendNameFormatted_word_appendsCorrectly() {
198 var ci = ClassInfo.of(int[][].class);
199 var sb = new StringBuilder();
200 ci.appendNameFormatted(sb, SIMPLE, false, '$', WORD);
201 assertEquals("intArrayArray", sb.toString());
202 }
203
204 @Test
205 void g03_appendNameFormatted_brackets_withFullName() {
206 var ci = ClassInfo.of(String[][].class);
207 var sb = new StringBuilder();
208 ci.appendNameFormatted(sb, FULL, false, '$', BRACKETS);
209 assertTrue(sb.toString().contains("String[][]"));
210 assertTrue(sb.toString().contains("java.lang"));
211 }
212
213 @Test
214 void g04_appendNameFormatted_word_withFullName() {
215 var ci = ClassInfo.of(Integer[][].class);
216 var sb = new StringBuilder();
217 ci.appendNameFormatted(sb, FULL, false, '$', WORD);
218 assertTrue(sb.toString().contains("ArrayArray"));
219 assertTrue(sb.toString().contains("Integer"));
220 }
221
222
223
224
225
226 @Test
227 void h01_nonArrayClass_brackets_returnsNormalName() {
228 var ci = ClassInfo.of(String.class);
229 var result = ci.getNameFormatted(SIMPLE, false, '$', BRACKETS);
230 assertEquals("String", result);
231 }
232
233 @Test
234 void h02_nonArrayClass_word_returnsNormalName() {
235 var ci = ClassInfo.of(Integer.class);
236 var result = ci.getNameFormatted(SIMPLE, false, '$', WORD);
237 assertEquals("Integer", result);
238 }
239
240 @Test
241 void h03_nonArrayClass_jvm_returnsNormalName() {
242 var ci = ClassInfo.of(String.class);
243 var result = ci.getNameFormatted(SIMPLE, false, '$', JVM);
244 assertEquals("String", result);
245 }
246
247
248
249
250
251 @Test
252 void i01_primitiveArrays_brackets() {
253 assertEquals("byte[]", ClassInfo.of(byte[].class).getNameFormatted(SIMPLE, false, '$', BRACKETS));
254 assertEquals("short[]", ClassInfo.of(short[].class).getNameFormatted(SIMPLE, false, '$', BRACKETS));
255 assertEquals("char[]", ClassInfo.of(char[].class).getNameFormatted(SIMPLE, false, '$', BRACKETS));
256 assertEquals("long[]", ClassInfo.of(long[].class).getNameFormatted(SIMPLE, false, '$', BRACKETS));
257 assertEquals("float[]", ClassInfo.of(float[].class).getNameFormatted(SIMPLE, false, '$', BRACKETS));
258 assertEquals("double[]", ClassInfo.of(double[].class).getNameFormatted(SIMPLE, false, '$', BRACKETS));
259 }
260
261 @Test
262 void i02_primitiveArrays_word() {
263 assertEquals("byteArray", ClassInfo.of(byte[].class).getNameFormatted(SIMPLE, false, '$', WORD));
264 assertEquals("shortArray", ClassInfo.of(short[].class).getNameFormatted(SIMPLE, false, '$', WORD));
265 assertEquals("charArray", ClassInfo.of(char[].class).getNameFormatted(SIMPLE, false, '$', WORD));
266 assertEquals("longArray", ClassInfo.of(long[].class).getNameFormatted(SIMPLE, false, '$', WORD));
267 assertEquals("floatArray", ClassInfo.of(float[].class).getNameFormatted(SIMPLE, false, '$', WORD));
268 assertEquals("doubleArray", ClassInfo.of(double[].class).getNameFormatted(SIMPLE, false, '$', WORD));
269 }
270
271
272
273
274
275 @Test
276 void j01_complexArray_brackets() {
277 var ci = ClassInfo.of(java.util.List[].class);
278 var result = ci.getNameFormatted(SIMPLE, false, '$', BRACKETS);
279 assertEquals("List[]", result);
280 }
281
282 @Test
283 void j02_complexArray_word() {
284 var ci = ClassInfo.of(java.util.Map[].class);
285 var result = ci.getNameFormatted(SIMPLE, false, '$', WORD);
286 assertEquals("MapArray", result);
287 }
288
289 @Test
290 void j03_complexArray_multiDimensional() {
291 var ci = ClassInfo.of(java.util.List[][].class);
292 var bracketsResult = ci.getNameFormatted(SIMPLE, false, '$', BRACKETS);
293 var wordResult = ci.getNameFormatted(SIMPLE, false, '$', WORD);
294 assertEquals("List[][]", bracketsResult);
295 assertEquals("ListArrayArray", wordResult);
296 }
297 }
298