View Javadoc
1   /*
2    * MIT License
3    * Copyright (c) 2006-2025 JMockit developers
4    * See LICENSE file for full license text.
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  }