AutoConfigurationPackagesTests Class — spring-boot Architecture
Architecture documentation for the AutoConfigurationPackagesTests class in AutoConfigurationPackagesTests.java from the spring-boot codebase.
Entity Profile
Relationship Graph
Source Code
core/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/AutoConfigurationPackagesTests.java lines 37–105
@SuppressWarnings("resource")
class AutoConfigurationPackagesTests {
@Test
void setAndGet() {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(
ConfigWithAutoConfigurationPackage.class);
assertThat(AutoConfigurationPackages.get(context.getBeanFactory()))
.containsExactly(getClass().getPackage().getName());
}
@Test
void getWithoutSet() {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(EmptyConfig.class);
assertThatIllegalStateException().isThrownBy(() -> AutoConfigurationPackages.get(context.getBeanFactory()))
.withMessageContaining("Unable to retrieve @EnableAutoConfiguration base packages");
}
@Test
void detectsMultipleAutoConfigurationPackages() {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(FirstConfiguration.class,
SecondConfiguration.class);
List<String> packages = AutoConfigurationPackages.get(context.getBeanFactory());
Package package1 = FirstConfiguration.class.getPackage();
Package package2 = SecondConfiguration.class.getPackage();
assertThat(packages).containsOnly(package1.getName(), package2.getName());
}
@Test
void whenBasePackagesAreSpecifiedThenTheyAreRegistered() {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(
ConfigWithAutoConfigurationBasePackages.class);
List<String> packages = AutoConfigurationPackages.get(context.getBeanFactory());
assertThat(packages).containsExactly("com.example.alpha", "com.example.bravo");
}
@Test
void whenBasePackageClassesAreSpecifiedThenTheirPackagesAreRegistered() {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(
ConfigWithAutoConfigurationBasePackageClasses.class);
List<String> packages = AutoConfigurationPackages.get(context.getBeanFactory());
assertThat(packages).containsOnly(FirstConfiguration.class.getPackage().getName(),
SecondConfiguration.class.getPackage().getName());
}
@Configuration(proxyBeanMethods = false)
@AutoConfigurationPackage
static class ConfigWithAutoConfigurationPackage {
}
@Configuration(proxyBeanMethods = false)
@AutoConfigurationPackage(basePackages = { "com.example.alpha", "com.example.bravo" })
static class ConfigWithAutoConfigurationBasePackages {
}
@Configuration(proxyBeanMethods = false)
@AutoConfigurationPackage(basePackageClasses = { FirstConfiguration.class, SecondConfiguration.class })
static class ConfigWithAutoConfigurationBasePackageClasses {
}
@Configuration(proxyBeanMethods = false)
static class EmptyConfig {
}
}
Domain
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free