SystemEnvironmentConfigDataLocationResolverTests Class — spring-boot Architecture
Architecture documentation for the SystemEnvironmentConfigDataLocationResolverTests class in SystemEnvironmentConfigDataLocationResolverTests.java from the spring-boot codebase.
Entity Profile
Relationship Graph
Source Code
core/spring-boot/src/test/java/org/springframework/boot/context/config/SystemEnvironmentConfigDataLocationResolverTests.java lines 39–127
class SystemEnvironmentConfigDataLocationResolverTests {
private SystemEnvironmentConfigDataLocationResolver resolver;
private Map<String, String> environment;
private ConfigDataLocationResolverContext context;
@BeforeEach
void setUp() {
this.context = mock(ConfigDataLocationResolverContext.class);
this.environment = new HashMap<>();
this.resolver = new SystemEnvironmentConfigDataLocationResolver(
List.of(new PropertiesPropertySourceLoader(), new YamlPropertySourceLoader()), this.environment::get);
}
@Test
void isResolvable() {
assertThat(this.resolver.isResolvable(this.context, ConfigDataLocation.of("env:VAR1"))).isTrue();
assertThat(this.resolver.isResolvable(this.context, ConfigDataLocation.of("dummy:VAR1"))).isFalse();
assertThat(this.resolver.isResolvable(this.context, ConfigDataLocation.of("VAR1"))).isFalse();
}
@Test
void resolveResolves() {
this.environment.put("VAR1", "VALUE1");
ConfigDataLocation location = ConfigDataLocation.of("env:VAR1");
List<SystemEnvironmentConfigDataResource> resolved = this.resolver.resolve(this.context, location);
assertThat(resolved).hasSize(1);
SystemEnvironmentConfigDataResource resource = resolved.get(0);
assertThat(resource.getVariableName()).isEqualTo("VAR1");
assertThat(resource.getLoader()).isInstanceOf(PropertiesPropertySourceLoader.class);
}
@Test
void resolveWhenHasNoVariableThrowsException() {
assertThatExceptionOfType(ConfigDataLocationNotFoundException.class)
.isThrownBy(() -> this.resolver.resolve(this.context, ConfigDataLocation.of("env:VAR1")))
.withMessage("Environment variable 'VAR1' is not set");
}
@Test
void resolveWhenOptionalAndHasVariableResolves() {
this.environment.put("VAR1", "VALUE1");
ConfigDataLocation location = ConfigDataLocation.of("optional:env:VAR1");
List<SystemEnvironmentConfigDataResource> resolved = this.resolver.resolve(this.context, location);
assertThat(resolved).hasSize(1);
SystemEnvironmentConfigDataResource resource = resolved.get(0);
assertThat(resource.getVariableName()).isEqualTo("VAR1");
assertThat(resource.getLoader()).isInstanceOf(PropertiesPropertySourceLoader.class);
}
@Test
void resolveWhenOptionalAndHasNoVariableResolvesEmpty() {
ConfigDataLocation location = ConfigDataLocation.of("optional:env:VAR1");
List<SystemEnvironmentConfigDataResource> resolved = this.resolver.resolve(this.context, location);
assertThat(resolved).isEmpty();
}
@Test
void resolveWhenHasPropertiesExtensionHintResolves() {
this.environment.put("VAR1", "VALUE1");
ConfigDataLocation location = ConfigDataLocation.of("env:VAR1[.properties]");
List<SystemEnvironmentConfigDataResource> resolved = this.resolver.resolve(this.context, location);
assertThat(resolved).hasSize(1);
SystemEnvironmentConfigDataResource resource = resolved.get(0);
assertThat(resource.getVariableName()).isEqualTo("VAR1");
assertThat(resource.getLoader()).isInstanceOf(PropertiesPropertySourceLoader.class);
}
@Test
void resolveWhenHasYamlExtensionHintResolves() {
this.environment.put("VAR1", "VALUE1");
ConfigDataLocation location = ConfigDataLocation.of("env:VAR1[.yaml]");
List<SystemEnvironmentConfigDataResource> resolved = this.resolver.resolve(this.context, location);
assertThat(resolved).hasSize(1);
SystemEnvironmentConfigDataResource resource = resolved.get(0);
assertThat(resource.getVariableName()).isEqualTo("VAR1");
assertThat(resource.getLoader()).isInstanceOf(YamlPropertySourceLoader.class);
}
@Test
void resolveWhenHasUnknownExtensionHintThrowsException() {
assertThatIllegalStateException()
.isThrownBy(() -> this.resolver.resolve(this.context, ConfigDataLocation.of("env:VAR1[.dummy]")))
.withMessage("File extension 'dummy' is not known to any PropertySourceLoader");
}
}
Domain
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free