OnClassConditionAutoConfigurationImportFilterTests Class — spring-boot Architecture
Architecture documentation for the OnClassConditionAutoConfigurationImportFilterTests class in OnClassConditionAutoConfigurationImportFilterTests.java from the spring-boot codebase.
Entity Profile
Relationship Graph
Source Code
core/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/condition/OnClassConditionAutoConfigurationImportFilterTests.java lines 36–78
class OnClassConditionAutoConfigurationImportFilterTests {
private final OnClassCondition filter = new OnClassCondition();
private final DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
@BeforeEach
void setup() {
this.filter.setBeanClassLoader(getClass().getClassLoader());
this.filter.setBeanFactory(this.beanFactory);
}
@Test
void shouldBeRegistered() {
assertThat(SpringFactoriesLoader.loadFactories(AutoConfigurationImportFilter.class, null))
.hasAtLeastOneElementOfType(OnClassCondition.class);
}
@Test
void matchShouldMatchClasses() {
String[] autoConfigurationClasses = new String[] { "test.match", "test.nomatch" };
boolean[] result = this.filter.match(autoConfigurationClasses, getAutoConfigurationMetadata());
assertThat(result).containsExactly(true, false);
}
@Test
void matchShouldRecordOutcome() {
String[] autoConfigurationClasses = new String[] { "test.match", "test.nomatch" };
this.filter.match(autoConfigurationClasses, getAutoConfigurationMetadata());
ConditionEvaluationReport report = ConditionEvaluationReport.get(this.beanFactory);
assertThat(report.getConditionAndOutcomesBySource()).hasSize(1).containsKey("test.nomatch");
}
private AutoConfigurationMetadata getAutoConfigurationMetadata() {
AutoConfigurationMetadata metadata = mock(AutoConfigurationMetadata.class);
given(metadata.wasProcessed("test.match")).willReturn(true);
given(metadata.get("test.match", "ConditionalOnClass")).willReturn("java.io.InputStream");
given(metadata.wasProcessed("test.nomatch")).willReturn(true);
given(metadata.get("test.nomatch", "ConditionalOnClass")).willReturn("java.io.DoesNotExist");
return metadata;
}
}
Domain
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free