ConditionEvaluationReportAutoConfigurationImportListenerTests Class — spring-boot Architecture
Architecture documentation for the ConditionEvaluationReportAutoConfigurationImportListenerTests class in ConditionEvaluationReportAutoConfigurationImportListenerTests.java from the spring-boot codebase.
Entity Profile
Relationship Graph
Source Code
core/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/condition/ConditionEvaluationReportAutoConfigurationImportListenerTests.java lines 41–109
class ConditionEvaluationReportAutoConfigurationImportListenerTests {
private ConditionEvaluationReportAutoConfigurationImportListener listener;
private final ConfigurableListableBeanFactory beanFactory = new DefaultListableBeanFactory();
@BeforeEach
void setup() {
this.listener = new ConditionEvaluationReportAutoConfigurationImportListener();
this.listener.setBeanFactory(this.beanFactory);
}
@Test
void shouldBeInSpringFactories() {
List<AutoConfigurationImportListener> factories = SpringFactoriesLoader
.loadFactories(AutoConfigurationImportListener.class, null);
assertThat(factories)
.hasAtLeastOneElementOfType(ConditionEvaluationReportAutoConfigurationImportListener.class);
}
@Test
void onAutoConfigurationImportEventShouldRecordCandidates() {
List<String> candidateConfigurations = Collections.singletonList("Test");
Set<String> exclusions = Collections.emptySet();
AutoConfigurationImportEvent event = new AutoConfigurationImportEvent(this, candidateConfigurations,
exclusions);
this.listener.onAutoConfigurationImportEvent(event);
ConditionEvaluationReport report = ConditionEvaluationReport.get(this.beanFactory);
assertThat(report.getUnconditionalClasses()).containsExactlyElementsOf(candidateConfigurations);
}
@Test
void onAutoConfigurationImportEventShouldRecordExclusions() {
List<String> candidateConfigurations = Collections.emptyList();
Set<String> exclusions = Collections.singleton("Test");
AutoConfigurationImportEvent event = new AutoConfigurationImportEvent(this, candidateConfigurations,
exclusions);
this.listener.onAutoConfigurationImportEvent(event);
ConditionEvaluationReport report = ConditionEvaluationReport.get(this.beanFactory);
assertThat(report.getExclusions()).containsExactlyElementsOf(exclusions);
}
@Test
void onAutoConfigurationImportEventShouldApplyExclusionsGlobally() {
AutoConfigurationImportEvent event = new AutoConfigurationImportEvent(this, Arrays.asList("First", "Second"),
Collections.emptySet());
this.listener.onAutoConfigurationImportEvent(event);
AutoConfigurationImportEvent anotherEvent = new AutoConfigurationImportEvent(this, Collections.emptyList(),
Collections.singleton("First"));
this.listener.onAutoConfigurationImportEvent(anotherEvent);
ConditionEvaluationReport report = ConditionEvaluationReport.get(this.beanFactory);
assertThat(report.getUnconditionalClasses()).containsExactly("Second");
assertThat(report.getExclusions()).containsExactly("First");
}
@Test
void onAutoConfigurationImportEventShouldApplyExclusionsGloballyWhenExclusionIsAlreadyApplied() {
AutoConfigurationImportEvent excludeEvent = new AutoConfigurationImportEvent(this, Collections.emptyList(),
Collections.singleton("First"));
this.listener.onAutoConfigurationImportEvent(excludeEvent);
AutoConfigurationImportEvent event = new AutoConfigurationImportEvent(this, Arrays.asList("First", "Second"),
Collections.emptySet());
this.listener.onAutoConfigurationImportEvent(event);
ConditionEvaluationReport report = ConditionEvaluationReport.get(this.beanFactory);
assertThat(report.getUnconditionalClasses()).containsExactly("Second");
assertThat(report.getExclusions()).containsExactly("First");
}
}
Domain
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free