1
2
3
4
5
6 package mockit.asm.types;
7
8 import static org.junit.jupiter.api.Assertions.assertEquals;
9 import static org.junit.jupiter.api.Assertions.assertNotNull;
10
11 import org.junit.jupiter.api.Test;
12
13 final class ArrayTypeTest {
14
15 @Test
16 void createFromStringDescriptor() {
17 ArrayType type = ArrayType.create("[Ljava/lang/String;");
18 assertNotNull(type);
19 }
20
21 @Test
22 void getDimensionsForSingleDimension() {
23 ArrayType type = ArrayType.create("[Ljava/lang/String;");
24 assertEquals(1, type.getDimensions());
25 }
26
27 @Test
28 void getDimensionsForMultiDimension() {
29 ArrayType type = ArrayType.create("[[I");
30 assertEquals(2, type.getDimensions());
31 }
32
33 @Test
34 void getElementTypeForObjectArray() {
35 ArrayType type = ArrayType.create("[Ljava/lang/String;");
36 JavaType elementType = type.getElementType();
37 assertNotNull(elementType);
38 }
39
40 @Test
41 void getElementTypeForPrimitiveArray() {
42 ArrayType type = ArrayType.create("[I");
43 JavaType elementType = type.getElementType();
44 assertNotNull(elementType);
45 }
46
47 @Test
48 void getClassNameForObjectArray() {
49 ArrayType type = ArrayType.create("[Ljava/lang/String;");
50 String className = type.getClassName();
51 assertEquals("java.lang.String[]", className);
52 }
53
54 @Test
55 void getClassNameForMultiDimensionalPrimitiveArray() {
56 ArrayType type = ArrayType.create("[[I");
57 String className = type.getClassName();
58 assertEquals("int[][]", className);
59 }
60
61 @Test
62 void getClassNameFor2DObjectArray() {
63 ArrayType type = ArrayType.create("[[Ljava/lang/Integer;");
64 String className = type.getClassName();
65 assertEquals("java.lang.Integer[][]", className);
66 }
67 }