ReflectionEnvironmentPostProcessorsFactoryTests Class — spring-boot Architecture
Architecture documentation for the ReflectionEnvironmentPostProcessorsFactoryTests class in ReflectionEnvironmentPostProcessorsFactoryTests.java from the spring-boot codebase.
Entity Profile
Relationship Graph
Source Code
core/spring-boot/src/test/java/org/springframework/boot/support/ReflectionEnvironmentPostProcessorsFactoryTests.java lines 43–210
class ReflectionEnvironmentPostProcessorsFactoryTests {
private final DeferredLogFactory logFactory = Supplier::get;
private final DefaultBootstrapContext bootstrapContext = new DefaultBootstrapContext();
@Test
void createWithClassesCreatesFactory() {
ReflectionEnvironmentPostProcessorsFactory factory = new ReflectionEnvironmentPostProcessorsFactory(
TestEnvironmentPostProcessor.class);
assertThatFactory(factory).createsSinglePostProcessor(TestEnvironmentPostProcessor.class);
}
@Test
void createWithClassNamesArrayCreatesFactory() {
ReflectionEnvironmentPostProcessorsFactory factory = new ReflectionEnvironmentPostProcessorsFactory(null,
TestEnvironmentPostProcessor.class.getName());
assertThatFactory(factory).createsSinglePostProcessor(TestEnvironmentPostProcessor.class);
}
@Test
void createWithClassNamesListCreatesFactory() {
ReflectionEnvironmentPostProcessorsFactory factory = new ReflectionEnvironmentPostProcessorsFactory(null,
Arrays.asList(TestEnvironmentPostProcessor.class.getName()));
assertThatFactory(factory).createsSinglePostProcessor(TestEnvironmentPostProcessor.class);
}
@Test
void createWithClassNamesAndClassLoaderListCreatesFactory() {
OverridingClassLoader classLoader = new OverridingClassLoader(getClass().getClassLoader()) {
@Override
protected boolean isEligibleForOverriding(String className) {
return super.isEligibleForOverriding(className)
&& className.equals(TestEnvironmentPostProcessor.class.getName());
}
};
ReflectionEnvironmentPostProcessorsFactory factory = new ReflectionEnvironmentPostProcessorsFactory(classLoader,
Arrays.asList(TestEnvironmentPostProcessor.class.getName()));
assertThatFactory(factory).createsSinglePostProcessorWithClassLoader(classLoader);
}
@Test
void getEnvironmentPostProcessorsWhenHasDefaultConstructorCreatesPostProcessors() {
ReflectionEnvironmentPostProcessorsFactory factory = new ReflectionEnvironmentPostProcessorsFactory(null,
TestEnvironmentPostProcessor.class.getName());
assertThatFactory(factory).createsSinglePostProcessor(TestEnvironmentPostProcessor.class);
}
@Test
void getEnvironmentPostProcessorsWhenHasLogFactoryConstructorCreatesPostProcessors() {
ReflectionEnvironmentPostProcessorsFactory factory = new ReflectionEnvironmentPostProcessorsFactory(null,
TestLogFactoryEnvironmentPostProcessor.class.getName());
assertThatFactory(factory).createsSinglePostProcessor(TestLogFactoryEnvironmentPostProcessor.class);
}
@Test
void getEnvironmentPostProcessorsWhenHasLogConstructorCreatesPostProcessors() {
ReflectionEnvironmentPostProcessorsFactory factory = new ReflectionEnvironmentPostProcessorsFactory(null,
TestLogEnvironmentPostProcessor.class.getName());
assertThatFactory(factory).createsSinglePostProcessor(TestLogEnvironmentPostProcessor.class);
}
@Test
void getEnvironmentPostProcessorsWhenHasBootstrapRegistryConstructorCreatesPostProcessors() {
ReflectionEnvironmentPostProcessorsFactory factory = new ReflectionEnvironmentPostProcessorsFactory(null,
TestBootstrapRegistryEnvironmentPostProcessor.class.getName());
assertThatFactory(factory).createsSinglePostProcessor(TestBootstrapRegistryEnvironmentPostProcessor.class);
}
@Test
void getEnvironmentPostProcessorsWhenHasNoSuitableConstructorThrowsException() {
ReflectionEnvironmentPostProcessorsFactory factory = new ReflectionEnvironmentPostProcessorsFactory(null,
BadEnvironmentPostProcessor.class.getName());
assertThatIllegalArgumentException()
.isThrownBy(() -> factory.getEnvironmentPostProcessors(this.logFactory, this.bootstrapContext))
.withMessageContaining("Unable to instantiate");
}
private EnvironmentPostProcessorsFactoryAssert assertThatFactory(EnvironmentPostProcessorsFactory factory) {
return new EnvironmentPostProcessorsFactoryAssert(factory);
}
class EnvironmentPostProcessorsFactoryAssert {
private final EnvironmentPostProcessorsFactory factory;
EnvironmentPostProcessorsFactoryAssert(EnvironmentPostProcessorsFactory factory) {
this.factory = factory;
}
void createsSinglePostProcessor(Class<?> expectedType) {
EnvironmentPostProcessor processor = getSingleProcessor();
assertThat(processor).isInstanceOf(expectedType);
}
void createsSinglePostProcessorWithClassLoader(OverridingClassLoader classLoader) {
EnvironmentPostProcessor processor = getSingleProcessor();
assertThat(processor.getClass().getClassLoader()).isSameAs(classLoader);
}
private EnvironmentPostProcessor getSingleProcessor() {
List<EnvironmentPostProcessor> processors = this.factory.getEnvironmentPostProcessors(
ReflectionEnvironmentPostProcessorsFactoryTests.this.logFactory,
ReflectionEnvironmentPostProcessorsFactoryTests.this.bootstrapContext);
assertThat(processors).hasSize(1);
return processors.get(0);
}
}
static class TestEnvironmentPostProcessor implements EnvironmentPostProcessor {
@Override
public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {
}
}
static class TestLogFactoryEnvironmentPostProcessor implements EnvironmentPostProcessor {
TestLogFactoryEnvironmentPostProcessor(DeferredLogFactory logFactory) {
assertThat(logFactory).isNotNull();
}
@Override
public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {
}
}
static class TestLogEnvironmentPostProcessor implements EnvironmentPostProcessor {
TestLogEnvironmentPostProcessor(Log log) {
assertThat(log).isNotNull();
}
@Override
public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {
}
}
static class TestBootstrapRegistryEnvironmentPostProcessor implements EnvironmentPostProcessor {
TestBootstrapRegistryEnvironmentPostProcessor(BootstrapRegistry bootstrapRegistry) {
assertThat(bootstrapRegistry).isNotNull();
}
@Override
public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {
}
}
static class BadEnvironmentPostProcessor implements EnvironmentPostProcessor {
BadEnvironmentPostProcessor(InputStream inputStream) {
}
@Override
public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {
}
}
}
Domain
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free