committed by
Spencer Gibb
parent
c65573ddb5
commit
7367b24a53
@@ -20,6 +20,7 @@ import com.ecwid.consul.v1.ConsulClient;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.cloud.consul.ConditionalOnConsulEnabled;
|
||||
import org.springframework.cloud.consul.ConsulAutoConfiguration;
|
||||
@@ -29,6 +30,7 @@ import org.springframework.context.annotation.Import;
|
||||
|
||||
/**
|
||||
* @author Spencer Gibb
|
||||
* @author Edvin Eriksson
|
||||
*/
|
||||
@Configuration
|
||||
@ConditionalOnConsulEnabled
|
||||
@@ -43,6 +45,7 @@ public class ConsulConfigBootstrapConfiguration {
|
||||
private ConsulClient consul;
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean
|
||||
public ConsulConfigProperties consulConfigProperties() {
|
||||
return new ConsulConfigProperties();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
package org.springframework.cloud.consul.config;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
|
||||
/**
|
||||
* @author Edvin Eriksson
|
||||
*/
|
||||
public class ConsulConfigBootstrapConfigurationTests {
|
||||
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner();
|
||||
|
||||
/**
|
||||
* Tests that the auto-config bean backs off if a user provided their own
|
||||
*/
|
||||
@Test
|
||||
public void testConfigPropsBeanBacksOff() {
|
||||
contextRunner
|
||||
.withUserConfiguration(TestConfig.class)
|
||||
.withUserConfiguration(ConsulConfigBootstrapConfiguration.class)
|
||||
.run(context -> {
|
||||
ConsulConfigProperties config = context.getBean(ConsulConfigProperties.class);
|
||||
Assert.assertEquals("Prefix did not match", "platform-config", config.getPrefix());
|
||||
Assert.assertEquals("Default context did not match", "defaults", config.getDefaultContext());
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests that the auto-config bean kicks in if the user did not provide any custom bean.
|
||||
*/
|
||||
@Test
|
||||
public void testConfigPropsBeanKicksIn() {
|
||||
contextRunner
|
||||
.withUserConfiguration(ConsulConfigBootstrapConfiguration.class)
|
||||
.run(context -> {
|
||||
ConsulConfigProperties config = context.getBean(ConsulConfigProperties.class);
|
||||
Assert.assertEquals("Prefix did not match", "config", config.getPrefix());
|
||||
Assert.assertEquals("Default context did not match", "application", config.getDefaultContext());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Test config that simulates a "user provided bean"
|
||||
*/
|
||||
class TestConfig {
|
||||
@Bean
|
||||
public ConsulConfigProperties consulConfigProperties() {
|
||||
ConsulConfigProperties config = new ConsulConfigProperties();
|
||||
config.setPrefix("platform-config");
|
||||
config.setDefaultContext("defaults");
|
||||
return config;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user