Home / Class/ ConditionEvaluationReportAutoConfigurationImportListenerTests Class — spring-boot Architecture

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

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free