Add additional ConfigDataProperties tests

Add more `isActive` tests to cover negative cases.

See gh-27017
pull/27348/head
Phillip Webb 3 years ago
parent b91c66b823
commit 93d316ddd1

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2020 the original author or authors. * Copyright 2012-2021 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -160,18 +160,39 @@ class ConfigDataPropertiesTests {
@Test @Test
void isActiveAgainstBoundData() { void isActiveAgainstBoundData() {
MapConfigurationPropertySource source = new MapConfigurationPropertySource(); MapConfigurationPropertySource source = new MapConfigurationPropertySource();
source.put("spring.config.import", "one,two,three");
source.put("spring.config.activate.on-cloud-platform", "kubernetes"); source.put("spring.config.activate.on-cloud-platform", "kubernetes");
source.put("spring.config.activate.on-profile", "a | b"); source.put("spring.config.activate.on-profile", "a | b");
Binder binder = new Binder(source); Binder binder = new Binder(source);
ConfigDataProperties properties = ConfigDataProperties.get(binder); ConfigDataProperties properties = ConfigDataProperties.get(binder);
ConfigDataActivationContext context = new ConfigDataActivationContext(CloudPlatform.KUBERNETES, ConfigDataActivationContext context = new ConfigDataActivationContext(CloudPlatform.KUBERNETES,
createTestProfiles()); createTestProfiles());
assertThat(properties.getImports()).containsExactly(ConfigDataLocation.of("one"), ConfigDataLocation.of("two"),
ConfigDataLocation.of("three"));
assertThat(properties.isActive(context)).isTrue(); assertThat(properties.isActive(context)).isTrue();
} }
@Test
void isActiveAgainstBoundDataWhenProfilesDontMatch() {
MapConfigurationPropertySource source = new MapConfigurationPropertySource();
source.put("spring.config.activate.on-cloud-platform", "kubernetes");
source.put("spring.config.activate.on-profile", "x | z");
Binder binder = new Binder(source);
ConfigDataProperties properties = ConfigDataProperties.get(binder);
ConfigDataActivationContext context = new ConfigDataActivationContext(CloudPlatform.KUBERNETES,
createTestProfiles());
assertThat(properties.isActive(context)).isFalse();
}
@Test
void isActiveAgainstBoundDataWhenCloudPlatformDoesntMatch() {
MapConfigurationPropertySource source = new MapConfigurationPropertySource();
source.put("spring.config.activate.on-cloud-platform", "cloud-foundry");
source.put("spring.config.activate.on-profile", "a | b");
Binder binder = new Binder(source);
ConfigDataProperties properties = ConfigDataProperties.get(binder);
ConfigDataActivationContext context = new ConfigDataActivationContext(CloudPlatform.KUBERNETES,
createTestProfiles());
assertThat(properties.isActive(context)).isFalse();
}
@Test @Test
void isActiveWhenBindingToLegacyProperty() { void isActiveWhenBindingToLegacyProperty() {
MapConfigurationPropertySource source = new MapConfigurationPropertySource(); MapConfigurationPropertySource source = new MapConfigurationPropertySource();

Loading…
Cancel
Save