|
23 | 23 | import com.tngtech.archunit.core.domain.testobjects.IsArrayTestClass;
|
24 | 24 | import com.tngtech.archunit.core.domain.testobjects.SuperA;
|
25 | 25 | import com.tngtech.archunit.core.importer.ClassFileImporter;
|
| 26 | +import com.tngtech.archunit.core.importer.testexamples.arrays.ClassAccessingOneDimensionalArray; |
| 27 | +import com.tngtech.archunit.core.importer.testexamples.arrays.ClassAccessingTwoDimensionalArray; |
| 28 | +import com.tngtech.archunit.core.importer.testexamples.arrays.ClassUsedInArray; |
26 | 29 | import com.tngtech.java.junit.dataprovider.DataProvider;
|
27 | 30 | import com.tngtech.java.junit.dataprovider.DataProviderRunner;
|
28 | 31 | import com.tngtech.java.junit.dataprovider.UseDataProvider;
|
@@ -80,13 +83,28 @@ public void finds_array_type() {
|
80 | 83 | JavaMethod method = importClassWithContext(IsArrayTestClass.class).getMethod("anArray");
|
81 | 84 |
|
82 | 85 | assertThat(method.getRawReturnType().isArray()).isTrue();
|
| 86 | + assertThat(method.getRawReturnType().tryGetComponentType().get().getName()).isEqualTo("java.lang.Object"); |
83 | 87 | }
|
84 | 88 |
|
85 | 89 | @Test
|
86 | 90 | public void finds_non_array_type() {
|
87 | 91 | JavaMethod method = importClassWithContext(IsArrayTestClass.class).getMethod("notAnArray");
|
88 | 92 |
|
89 | 93 | assertThat(method.getRawReturnType().isArray()).isFalse();
|
| 94 | + assertThat(method.getRawReturnType().tryGetComponentType().isPresent()).isFalse(); |
| 95 | + } |
| 96 | + |
| 97 | + @Test |
| 98 | + public void finds_multidimensional_array_type() { |
| 99 | + JavaClasses classes = importClassesWithContext(ClassUsedInArray.class, ClassAccessingOneDimensionalArray.class, ClassAccessingTwoDimensionalArray.class); |
| 100 | + JavaClass type = classes.get(ClassUsedInArray.class); |
| 101 | + JavaClass oneDimArray = classes.get(ClassAccessingOneDimensionalArray.class).getField("array").getRawType(); |
| 102 | + JavaClass twoDimArray = classes.get(ClassAccessingTwoDimensionalArray.class).getField("array").getRawType(); |
| 103 | + |
| 104 | + assertThat(oneDimArray.isArray()).isTrue(); |
| 105 | + assertThat(oneDimArray.tryGetComponentType().get()).isEqualTo(type); |
| 106 | + assertThat(twoDimArray.isArray()).isTrue(); |
| 107 | + assertThat(twoDimArray.tryGetComponentType().get()).isEqualTo(oneDimArray); |
90 | 108 | }
|
91 | 109 |
|
92 | 110 | @Test
|
|
0 commit comments