ConditionalOnWebApplicationTests Class — spring-boot Architecture
Architecture documentation for the ConditionalOnWebApplicationTests class in ConditionalOnWebApplicationTests.java from the spring-boot codebase.
Entity Profile
Relationship Graph
Source Code
core/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/condition/ConditionalOnWebApplicationTests.java lines 41–118
class ConditionalOnWebApplicationTests {
private @Nullable ConfigurableApplicationContext context;
@AfterEach
void closeContext() {
if (this.context != null) {
this.context.close();
}
}
@Test
void testWebApplicationWithServletContext() {
AnnotationConfigServletWebApplicationContext ctx = new AnnotationConfigServletWebApplicationContext();
ctx.register(AnyWebApplicationConfiguration.class, ServletWebApplicationConfiguration.class,
ReactiveWebApplicationConfiguration.class);
ctx.setServletContext(new MockServletContext());
ctx.refresh();
this.context = ctx;
assertThat(this.context.getBeansOfType(String.class)).containsExactly(entry("any", "any"),
entry("servlet", "servlet"));
}
@Test
void testWebApplicationWithReactiveContext() {
AnnotationConfigReactiveWebApplicationContext context = new AnnotationConfigReactiveWebApplicationContext();
context.register(AnyWebApplicationConfiguration.class, ServletWebApplicationConfiguration.class,
ReactiveWebApplicationConfiguration.class);
context.refresh();
this.context = context;
assertThat(this.context.getBeansOfType(String.class)).containsExactly(entry("any", "any"),
entry("reactive", "reactive"));
}
@Test
void testNonWebApplication() {
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();
ctx.register(AnyWebApplicationConfiguration.class, ServletWebApplicationConfiguration.class,
ReactiveWebApplicationConfiguration.class);
ctx.refresh();
this.context = ctx;
assertThat(this.context.getBeansOfType(String.class)).isEmpty();
}
@Configuration(proxyBeanMethods = false)
@ConditionalOnWebApplication
static class AnyWebApplicationConfiguration {
@Bean
String any() {
return "any";
}
}
@Configuration(proxyBeanMethods = false)
@ConditionalOnWebApplication(type = Type.SERVLET)
static class ServletWebApplicationConfiguration {
@Bean
String servlet() {
return "servlet";
}
}
@Configuration(proxyBeanMethods = false)
@ConditionalOnWebApplication(type = Type.REACTIVE)
static class ReactiveWebApplicationConfiguration {
@Bean
String reactive() {
return "reactive";
}
}
}
Domain
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free