|
27 | 27 | import com.tngtech.archunit.junit.internal.testexamples.FullAnalyzeClassesSpec;
|
28 | 28 | import com.tngtech.archunit.junit.internal.testexamples.LibraryWithPrivateTests;
|
29 | 29 | import com.tngtech.archunit.junit.internal.testexamples.SimpleRuleLibrary;
|
| 30 | +import com.tngtech.archunit.junit.internal.testexamples.TestClassWithMetaAnnotationForAnalyzeClasses; |
30 | 31 | import com.tngtech.archunit.junit.internal.testexamples.TestClassWithMetaTag;
|
31 | 32 | import com.tngtech.archunit.junit.internal.testexamples.TestClassWithMetaTags;
|
32 | 33 | import com.tngtech.archunit.junit.internal.testexamples.TestClassWithTags;
|
@@ -169,6 +170,20 @@ void a_single_test_class() {
|
169 | 170 | assertThat(child.getParent().get()).isEqualTo(descriptor);
|
170 | 171 | }
|
171 | 172 |
|
| 173 | + @Test |
| 174 | + void a_test_class_with_meta_annotated_analyze_classes() { |
| 175 | + EngineDiscoveryTestRequest discoveryRequest = new EngineDiscoveryTestRequest().withClass(TestClassWithMetaAnnotationForAnalyzeClasses.class); |
| 176 | + |
| 177 | + TestDescriptor descriptor = testEngine.discover(discoveryRequest, engineId); |
| 178 | + |
| 179 | + TestDescriptor child = getOnlyElement(descriptor.getChildren()); |
| 180 | + assertThat(child).isInstanceOf(ArchUnitTestDescriptor.class); |
| 181 | + assertThat(child.getUniqueId()).isEqualTo(engineId.append(CLASS_SEGMENT_TYPE, TestClassWithMetaAnnotationForAnalyzeClasses.class.getName())); |
| 182 | + assertThat(child.getDisplayName()).isEqualTo(TestClassWithMetaAnnotationForAnalyzeClasses.class.getSimpleName()); |
| 183 | + assertThat(child.getType()).isEqualTo(CONTAINER); |
| 184 | + assertThat(child.getParent()).get().isEqualTo(descriptor); |
| 185 | + } |
| 186 | + |
172 | 187 | @Test
|
173 | 188 | void source_of_a_single_test_class() {
|
174 | 189 | EngineDiscoveryTestRequest discoveryRequest = new EngineDiscoveryTestRequest().withClass(SimpleRuleField.class);
|
@@ -505,10 +520,10 @@ void mixed_class_methods_and_fields() {
|
505 | 520 | expectedLeafIds.add(simpleRuleFieldTestId(engineId));
|
506 | 521 | expectedLeafIds.add(simpleRuleMethodTestId(engineId));
|
507 | 522 | Stream.concat(
|
508 |
| - SimpleRules.RULE_FIELD_NAMES.stream().map(fieldName -> |
509 |
| - simpleRulesId(engineId).append(FIELD_SEGMENT_TYPE, fieldName)), |
510 |
| - SimpleRules.RULE_METHOD_NAMES.stream().map(methodName -> |
511 |
| - simpleRulesId(engineId).append(METHOD_SEGMENT_TYPE, methodName))) |
| 523 | + SimpleRules.RULE_FIELD_NAMES.stream().map(fieldName -> |
| 524 | + simpleRulesId(engineId).append(FIELD_SEGMENT_TYPE, fieldName)), |
| 525 | + SimpleRules.RULE_METHOD_NAMES.stream().map(methodName -> |
| 526 | + simpleRulesId(engineId).append(METHOD_SEGMENT_TYPE, methodName))) |
512 | 527 | .forEach(expectedLeafIds::add);
|
513 | 528 |
|
514 | 529 | assertThat(getAllLeafUniqueIds(rootDescriptor))
|
@@ -1074,6 +1089,21 @@ void cache_is_cleared_afterwards() {
|
1074 | 1089 | verify(classCache, atLeastOnce()).getClassesToAnalyzeFor(any(Class.class), any(ClassAnalysisRequest.class));
|
1075 | 1090 | verifyNoMoreInteractions(classCache);
|
1076 | 1091 | }
|
| 1092 | + |
| 1093 | + @Test |
| 1094 | + void a_class_with_analyze_classes_as_meta_annotation() { |
| 1095 | + execute(createEngineId(), TestClassWithMetaAnnotationForAnalyzeClasses.class); |
| 1096 | + |
| 1097 | + verify(classCache).getClassesToAnalyzeFor(eq(TestClassWithMetaAnnotationForAnalyzeClasses.class), classAnalysisRequestCaptor.capture()); |
| 1098 | + ClassAnalysisRequest request = classAnalysisRequestCaptor.getValue(); |
| 1099 | + AnalyzeClasses expected = TestClassWithMetaAnnotationForAnalyzeClasses.class.getAnnotation(TestClassWithMetaAnnotationForAnalyzeClasses.MetaAnalyzeClasses.class) |
| 1100 | + .annotationType().getAnnotation(AnalyzeClasses.class); |
| 1101 | + assertThat(request.getPackageNames()).isEqualTo(expected.packages()); |
| 1102 | + assertThat(request.getPackageRoots()).isEqualTo(expected.packagesOf()); |
| 1103 | + assertThat(request.getLocationProviders()).isEqualTo(expected.locations()); |
| 1104 | + assertThat(request.scanWholeClasspath()).as("scan whole classpath").isTrue(); |
| 1105 | + assertThat(request.getImportOptions()).isEqualTo(expected.importOptions()); |
| 1106 | + } |
1077 | 1107 | }
|
1078 | 1108 |
|
1079 | 1109 | @Nested
|
|
0 commit comments