Fix all tests with Spring Boot latest snapshots

This commit is contained in:
Dave Syer
2017-05-12 17:45:42 +01:00
parent 1f9d6a5b3f
commit d4bc8503a5
26 changed files with 235 additions and 175 deletions

View File

@@ -51,8 +51,7 @@
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-commons</artifactId>
<type>test-jar</type>
<artifactId>spring-cloud-test-support</artifactId>
<scope>test</scope>
<version>${spring-cloud-commons.version}</version>
</dependency>

View File

@@ -78,8 +78,7 @@
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-commons</artifactId>
<type>test-jar</type>
<artifactId>spring-cloud-test-support</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

View File

@@ -2,10 +2,11 @@ package org.springframework.cloud.config.client;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.cloud.ClassPathExclusions;
import org.springframework.cloud.FilteredClassPathRunner;
@RunWith(FilteredClassPathRunner.class)
import org.springframework.cloud.test.ClassPathExclusions;
import org.springframework.cloud.test.ModifiedClassPathRunner;
@RunWith(ModifiedClassPathRunner.class)
@ClassPathExclusions({ "spring-retry-*.jar", "spring-boot-starter-aop-*.jar" })
public class DiscoveryClientConfigServiceBootstrapConfigurationNoSpringRetryTests
extends BaseDiscoveryClientConfigServiceBootstrapConfigurationTests {

View File

@@ -22,6 +22,8 @@ import java.util.Map;
import org.junit.Test;
import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration;
import org.springframework.boot.autoconfigure.web.ServerProperties;
import org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Bean;
@@ -41,8 +43,7 @@ public class EnvironmentMonitorAutoConfigurationTests {
public void test() {
ConfigurableApplicationContext context = new SpringApplicationBuilder(
EnvironmentMonitorAutoConfiguration.class,
// FIXME EmbeddedServletContainerAutoConfiguration.class,
// ServerPropertiesAutoConfiguration.class,
ServletWebServerFactoryAutoConfiguration.class, ServerProperties.class,
PropertyPlaceholderAutoConfiguration.class).properties("server.port=-1")
.run();
PropertyPathEndpoint endpoint = context.getBean(PropertyPathEndpoint.class);
@@ -58,8 +59,7 @@ public class EnvironmentMonitorAutoConfigurationTests {
ConfigurableApplicationContext context = new SpringApplicationBuilder(
CustomPropertyPathNotificationExtractorConfig.class,
EnvironmentMonitorAutoConfiguration.class,
// FIXME EmbeddedServletContainerAutoConfiguration.class,
// ServerPropertiesAutoConfiguration.class,
ServletWebServerFactoryAutoConfiguration.class, ServerProperties.class,
PropertyPlaceholderAutoConfiguration.class).properties("server.port=-1")
.run();
PropertyPathEndpoint endpoint = context.getBean(PropertyPathEndpoint.class);

View File

@@ -13,6 +13,7 @@ import org.springframework.boot.web.server.LocalServerPort;
import org.springframework.cloud.config.server.test.ConfigServerTestUtils;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.util.SocketUtils;
import static org.junit.Assert.assertEquals;
import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT;
@@ -25,7 +26,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
"management.security.enabled=false" }, webEnvironment = RANDOM_PORT)
public class ApplicationTests {
private static int configPort = 0;
private static int configPort = SocketUtils.findAvailableTcpPort();
@LocalServerPort
private int port;
@@ -58,7 +59,7 @@ public class ApplicationTests {
@Test
public void contextLoads() {
String foo = new TestRestTemplate()
.getForObject("http://localhost:" + port + "/env/info.foo", String.class);
.getForObject("http://localhost:" + port + "/application/env/info.foo", String.class);
assertEquals("{\"info.foo\":\"bar\"}", foo);
}

View File

@@ -72,7 +72,6 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring-cloud.version>${project.version}</spring-cloud.version>
<start-class>org.springframework.cloud.config.server.ConfigServerApplication</start-class>
<java.version>1.7</java.version>
</properties>
</project>

View File

@@ -29,6 +29,7 @@ import org.springframework.cloud.config.server.environment.SvnKitEnvironmentRepo
import org.springframework.cloud.config.server.environment.VaultEnvironmentRepository;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.context.annotation.Profile;
import org.springframework.core.env.ConfigurableEnvironment;
import org.springframework.web.client.RestTemplate;
@@ -39,79 +40,18 @@ import org.springframework.web.client.RestTemplate;
*
*/
@Configuration
@Import({ VaultRepositoryConfiguration.class, SvnRepositoryConfiguration.class,
NativeRepositoryConfiguration.class, GitRepositoryConfiguration.class,
DefaultRepositoryConfiguration.class })
public class EnvironmentRepositoryConfiguration {
@Bean
@ConditionalOnProperty(value = "spring.cloud.config.server.health.enabled", matchIfMissing = true)
public ConfigServerHealthIndicator configServerHealthIndicator(EnvironmentRepository repository) {
public ConfigServerHealthIndicator configServerHealthIndicator(
EnvironmentRepository repository) {
return new ConfigServerHealthIndicator(repository);
}
@Configuration
@ConditionalOnMissingBean(EnvironmentRepository.class)
protected static class DefaultRepositoryConfiguration {
@Autowired
private ConfigurableEnvironment environment;
@Autowired
private ConfigServerProperties server;
@Bean
public MultipleJGitEnvironmentRepository defaultEnvironmentRepository() {
MultipleJGitEnvironmentRepository repository = new MultipleJGitEnvironmentRepository(this.environment);
if (this.server.getDefaultLabel()!=null) {
repository.setDefaultLabel(this.server.getDefaultLabel());
}
return repository;
}
}
@Configuration
@Profile("native")
protected static class NativeRepositoryConfiguration {
@Autowired
private ConfigurableEnvironment environment;
@Bean
public NativeEnvironmentRepository nativeEnvironmentRepository() {
return new NativeEnvironmentRepository(this.environment);
}
}
@Configuration
@Profile("git")
protected static class GitRepositoryConfiguration extends DefaultRepositoryConfiguration {}
@Configuration
@Profile("subversion")
protected static class SvnRepositoryConfiguration {
@Autowired
private ConfigurableEnvironment environment;
@Autowired
private ConfigServerProperties server;
@Bean
public SvnKitEnvironmentRepository svnKitEnvironmentRepository() {
SvnKitEnvironmentRepository repository = new SvnKitEnvironmentRepository(this.environment);
if (this.server.getDefaultLabel()!=null) {
repository.setDefaultLabel(this.server.getDefaultLabel());
}
return repository;
}
}
@Configuration
@Profile("vault")
protected static class VaultConfiguration {
@Bean
public VaultEnvironmentRepository vaultEnvironmentRepository(HttpServletRequest request, EnvironmentWatch watch) {
return new VaultEnvironmentRepository(request, watch, new RestTemplate());
}
}
@Configuration
@ConditionalOnProperty(value = "spring.cloud.config.server.consul.watch.enabled")
protected static class ConsulEnvironmentWatchConfiguration {
@@ -132,3 +72,73 @@ public class EnvironmentRepositoryConfiguration {
}
}
}
@Configuration
@ConditionalOnMissingBean(EnvironmentRepository.class)
class DefaultRepositoryConfiguration {
@Autowired
private ConfigurableEnvironment environment;
@Autowired
private ConfigServerProperties server;
@Bean
public MultipleJGitEnvironmentRepository defaultEnvironmentRepository() {
MultipleJGitEnvironmentRepository repository = new MultipleJGitEnvironmentRepository(
this.environment);
if (this.server.getDefaultLabel() != null) {
repository.setDefaultLabel(this.server.getDefaultLabel());
}
return repository;
}
}
@Configuration
@ConditionalOnMissingBean(EnvironmentRepository.class)
@Profile("native")
class NativeRepositoryConfiguration {
@Autowired
private ConfigurableEnvironment environment;
@Bean
public NativeEnvironmentRepository nativeEnvironmentRepository() {
return new NativeEnvironmentRepository(this.environment);
}
}
@Configuration
@Profile("git")
class GitRepositoryConfiguration extends DefaultRepositoryConfiguration {
}
@Configuration
@Profile("subversion")
class SvnRepositoryConfiguration {
@Autowired
private ConfigurableEnvironment environment;
@Autowired
private ConfigServerProperties server;
@Bean
public SvnKitEnvironmentRepository svnKitEnvironmentRepository() {
SvnKitEnvironmentRepository repository = new SvnKitEnvironmentRepository(
this.environment);
if (this.server.getDefaultLabel() != null) {
repository.setDefaultLabel(this.server.getDefaultLabel());
}
return repository;
}
}
@Configuration
@Profile("vault")
class VaultRepositoryConfiguration {
@Bean
public VaultEnvironmentRepository vaultEnvironmentRepository(
HttpServletRequest request, EnvironmentWatch watch) {
return new VaultEnvironmentRepository(request, watch, new RestTemplate());
}
}

View File

@@ -31,6 +31,7 @@ import org.springframework.http.ResponseEntity;
import org.springframework.security.crypto.codec.Hex;
import org.springframework.security.crypto.encrypt.TextEncryptor;
import org.springframework.security.rsa.crypto.RsaKeyHolder;
import org.springframework.util.Base64Utils;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
@@ -147,12 +148,11 @@ public class EncryptionController {
@RequestBody String data, @RequestHeader("Content-Type") MediaType type) {
checkEncryptorInstalled(name, profiles);
try {
String input = stripFormData(data, type, true);
String input = stripFormData(this.helper.stripPrefix(data), type, true);
Map<String, String> encryptorKeys = this.helper.getEncryptorKeys(name,
profiles, input);
profiles, data);
TextEncryptor encryptor = this.encryptor.locate(encryptorKeys);
String encryptedText = this.helper.stripPrefix(input);
String decrypted = encryptor.decrypt(encryptedText);
String decrypted = encryptor.decrypt(input);
logger.info("Decrypted cipher data");
return decrypted;
}
@@ -191,6 +191,12 @@ public class EncryptionController {
return candidate;
}
catch (IllegalArgumentException e) {
try {
Base64Utils.decode(candidate.getBytes());
return candidate;
}
catch (IllegalArgumentException ex) {
}
}
}
}

View File

@@ -236,11 +236,6 @@ public class MultipleJGitEnvironmentRepository extends JGitEnvironmentRepository
super(null);
}
public PatternMatchingJGitEnvironmentRepository(String uri) {
this();
setUri(uri);
}
public boolean matches(String application, String profile, String label) {
if (this.pattern == null || this.pattern.length == 0) {
return false;

View File

@@ -26,6 +26,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.boot.Banner.Mode;
import org.springframework.boot.WebApplicationType;
import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.config.ConfigFileApplicationListener;
@@ -100,7 +101,7 @@ public class NativeEnvironmentRepository implements EnvironmentRepository, Searc
PropertyPlaceholderAutoConfiguration.class);
ConfigurableEnvironment environment = getEnvironment(profile);
builder.environment(environment);
builder.web(false).bannerMode(Mode.OFF);
builder.web(WebApplicationType.NONE).bannerMode(Mode.OFF);
if (!logger.isDebugEnabled()) {
// Make the mini-application startup less verbose
builder.logStartupInfo(false);

View File

@@ -18,6 +18,7 @@ package org.springframework.cloud.config.server.environment;
import java.util.Arrays;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
@@ -40,8 +41,7 @@ public class PassthruEnvironmentRepository implements EnvironmentRepository {
private static final String DEFAULT_LABEL = "master";
private Set<String> standardSources = new HashSet<String>(Arrays.asList(
"vcap",
private Set<String> standardSources = new HashSet<String>(Arrays.asList("vcap",
StandardEnvironment.SYSTEM_PROPERTIES_PROPERTY_SOURCE_NAME,
StandardEnvironment.SYSTEM_ENVIRONMENT_PROPERTY_SOURCE_NAME,
StandardServletEnvironment.JNDI_PROPERTY_SOURCE_NAME,
@@ -60,15 +60,29 @@ public class PassthruEnvironmentRepository implements EnvironmentRepository {
@Override
public Environment findOne(String application, String env, String label) {
Environment result = new Environment(application, StringUtils.commaDelimitedListToStringArray(env), label, null, null);
for (org.springframework.core.env.PropertySource<?> source : this.environment.getPropertySources()) {
Environment result = new Environment(application,
StringUtils.commaDelimitedListToStringArray(env), label, null, null);
for (org.springframework.core.env.PropertySource<?> source : this.environment
.getPropertySources()) {
String name = source.getName();
if (!this.standardSources.contains(name) && source instanceof MapPropertySource) {
result.add(new PropertySource(name, (Map<?, ?>) source.getSource()));
if (!this.standardSources.contains(name)
&& source instanceof MapPropertySource) {
result.add(new PropertySource(name, getMap(source)));
}
}
return result;
}
private Map<?, ?> getMap(org.springframework.core.env.PropertySource<?> source) {
Map<Object, Object> map = new LinkedHashMap<>();
Map<?, ?> input = (Map<?, ?>) source.getSource();
for (Object key : input.keySet()) {
// Spring Boot wraps the property values in an "origin" detector, so we need
// to extract the string values
map.put(key, source.getProperty(key.toString()));
}
return map;
}
}

View File

@@ -47,9 +47,6 @@ public class CompositeConfigServerIntegrationTests {
@LocalServerPort
private int port;
@BeforeClass
public static void init() throws Exception {
ConfigServerTestUtils.prepareLocalRepo();

View File

@@ -5,10 +5,10 @@ import java.io.IOException;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.server.LocalServerPort;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.web.client.TestRestTemplate;
import org.springframework.boot.web.server.LocalServerPort;
import org.springframework.cloud.config.environment.Environment;
import org.springframework.cloud.config.server.test.ConfigServerTestUtils;
import org.springframework.http.HttpStatus;

View File

@@ -6,6 +6,7 @@ import java.util.Arrays;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.web.client.TestRestTemplate;
import org.springframework.boot.web.server.LocalServerPort;
@@ -21,7 +22,6 @@ import org.springframework.test.context.junit4.SpringRunner;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT;
@RunWith(SpringRunner.class)

View File

@@ -6,13 +6,15 @@ import org.junit.Before;
import org.junit.Test;
import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.springframework.boot.actuate.health.Status;
import org.springframework.cloud.config.environment.Environment;
import org.springframework.cloud.config.server.config.ConfigServerHealthIndicator.Repository;
import org.springframework.cloud.config.server.environment.EnvironmentRepository;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.anyString;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.when;
import static org.mockito.MockitoAnnotations.initMocks;
@@ -38,13 +40,13 @@ public class ConfigServerHealthIndicatorTests {
@Test
public void defaultStatusWorks() {
when(repository.findOne(anyString(), anyString(), anyString())).thenReturn(environment);
when(repository.findOne(anyString(), anyString(), Mockito.<String>isNull())).thenReturn(environment);
assertEquals("wrong default status", Status.UP, indicator.health().getStatus());
}
@Test
public void exceptionStatusIsDown() {
when(repository.findOne(anyString(), anyString(), anyString())).thenThrow(new RuntimeException());
when(repository.findOne(anyString(), anyString(), Mockito.<String>isNull())).thenThrow(new RuntimeException());
assertEquals("wrong exception status", Status.DOWN, indicator.health().getStatus());
}

View File

@@ -29,7 +29,9 @@ import org.springframework.cloud.context.encrypt.EncryptorFactory;
import org.springframework.security.crypto.encrypt.TextEncryptor;
public class CipherEnvironmentEncryptorTests {
TextEncryptor textEncryptor = new EncryptorFactory().create("foo");
EnvironmentEncryptor encryptor = new CipherEnvironmentEncryptor(new TextEncryptorLocator() {
@Override

View File

@@ -17,6 +17,8 @@ package org.springframework.cloud.config.server.environment;
import org.eclipse.jgit.api.Git;
import org.springframework.boot.WebApplicationType;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.config.server.test.ConfigServerTestUtils;
import org.springframework.context.ConfigurableApplicationContext;
@@ -100,7 +102,7 @@ public class JGitConfigServerTestData {
.call();
//setup our test spring application pointing to the local repo
ConfigurableApplicationContext context = new SpringApplicationBuilder(sources).web(false)
ConfigurableApplicationContext context = new SpringApplicationBuilder(sources).web(WebApplicationType.NONE)
.properties("spring.cloud.config.server.git.uri:" + "file://" + clonedRepoDir.getAbsolutePath()).run();
JGitEnvironmentRepository repository = context.getBean(JGitEnvironmentRepository.class);

View File

@@ -28,6 +28,7 @@ import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.boot.WebApplicationType;
import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
@@ -70,13 +71,14 @@ public class JGitEnvironmentRepositoryConcurrencyTests {
@Test
public void vanilla() throws Exception {
String uri = ConfigServerTestUtils.prepareLocalRepo();
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(false)
this.context = new SpringApplicationBuilder(TestConfiguration.class)
.web(WebApplicationType.NONE)
.properties("spring.cloud.config.server.git.uri:" + uri).run();
final EnvironmentRepository repository = this.context
.getBean(EnvironmentRepository.class);
ExecutorService threads = Executors.newFixedThreadPool(4);
List<Future<Boolean>> tasks = new ArrayList<Future<Boolean>>();
for (int i=0; i<30; i++) {
for (int i = 0; i < 30; i++) {
tasks.add(threads.submit(new Runnable() {
@Override
public void run() {
@@ -97,7 +99,7 @@ public class JGitEnvironmentRepositoryConcurrencyTests {
@Configuration
@EnableConfigurationProperties(ConfigServerProperties.class)
@Import({ PropertyPlaceholderAutoConfiguration.class,
EnvironmentRepositoryConfiguration.class })
EnvironmentRepositoryConfiguration.class })
protected static class TestConfiguration {
}

View File

@@ -40,6 +40,7 @@ import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.boot.WebApplicationType;
import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
@@ -90,7 +91,7 @@ public class JGitEnvironmentRepositoryIntegrationTests {
@Test
public void vanilla() throws IOException {
String uri = ConfigServerTestUtils.prepareLocalRepo();
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(false)
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(WebApplicationType.NONE)
.properties("spring.cloud.config.server.git.uri:" + uri).run();
EnvironmentRepository repository = this.context
.getBean(EnvironmentRepository.class);
@@ -106,7 +107,7 @@ public class JGitEnvironmentRepositoryIntegrationTests {
public void pull() throws Exception {
ConfigServerTestUtils.prepareLocalRepo();
String uri = ConfigServerTestUtils.copyLocalRepo("config-copy");
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(false)
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(WebApplicationType.NONE)
.run("--spring.cloud.config.server.git.uri=" + uri);
EnvironmentRepository repository = this.context
.getBean(EnvironmentRepository.class);
@@ -153,7 +154,7 @@ public class JGitEnvironmentRepositoryIntegrationTests {
String commitToRevertBeforePull = git.log().setMaxCount(1).call().iterator()
.next().getName();
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(false)
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(WebApplicationType.NONE)
.run("--spring.cloud.config.server.git.uri=" + uri);
JGitEnvironmentRepository repository = this.context
@@ -193,7 +194,7 @@ public class JGitEnvironmentRepositoryIntegrationTests {
@Test
public void nested() throws IOException {
String uri = ConfigServerTestUtils.prepareLocalRepo("another-config-repo");
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(false)
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(WebApplicationType.NONE)
// TODO: why didn't .properties() work for me?
.run("--spring.cloud.config.server.git.uri=" + uri,
"--spring.cloud.config.server.git.searchPaths=sub");
@@ -207,7 +208,7 @@ public class JGitEnvironmentRepositoryIntegrationTests {
@Test
public void nestedWithApplicationPlaceholders() throws IOException {
String uri = ConfigServerTestUtils.prepareLocalRepo("nested-repo");
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(false)
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(WebApplicationType.NONE)
// TODO: why didn't .properties() work for me?
.run("--spring.cloud.config.server.git.uri=" + uri,
"--spring.cloud.config.server.git.searchPaths={application}");
@@ -221,7 +222,7 @@ public class JGitEnvironmentRepositoryIntegrationTests {
@Test
public void nestedWithProfilePlaceholders() throws IOException {
String uri = ConfigServerTestUtils.prepareLocalRepo("nested-repo");
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(false)
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(WebApplicationType.NONE)
// TODO: why didn't .properties() work for me?
.run("--spring.cloud.config.server.git.uri=" + uri,
"--spring.cloud.config.server.git.searchPaths={profile}");
@@ -235,7 +236,7 @@ public class JGitEnvironmentRepositoryIntegrationTests {
@Test
public void singleElementArrayIndexSearchPath() throws IOException {
String uri = ConfigServerTestUtils.prepareLocalRepo("nested-repo");
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(false)
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(WebApplicationType.NONE)
.run("--spring.cloud.config.server.git.uri=" + uri,
"--spring.cloud.config.server.git.searchPaths[0]={application}");
JGitEnvironmentRepository repository = this.context
@@ -249,7 +250,7 @@ public class JGitEnvironmentRepositoryIntegrationTests {
@Test
public void defaultLabel() throws Exception {
String uri = ConfigServerTestUtils.prepareLocalRepo();
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(false)
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(WebApplicationType.NONE)
.properties("spring.cloud.config.server.git.uri:" + uri).run();
JGitEnvironmentRepository repository = this.context
.getBean(JGitEnvironmentRepository.class);
@@ -259,7 +260,7 @@ public class JGitEnvironmentRepositoryIntegrationTests {
@Test(expected = NoSuchLabelException.class)
public void invalidLabel() throws IOException {
String uri = ConfigServerTestUtils.prepareLocalRepo();
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(false)
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(WebApplicationType.NONE)
.properties("spring.cloud.config.server.git.uri:" + uri).run();
EnvironmentRepository repository = this.context
.getBean(EnvironmentRepository.class);
@@ -270,7 +271,7 @@ public class JGitEnvironmentRepositoryIntegrationTests {
public void findOne_CloneOnStartTrue_FindOneSuccess() throws Exception {
ConfigServerTestUtils.prepareLocalRepo();
String uri = ConfigServerTestUtils.copyLocalRepo("config-copy");
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(false)
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(WebApplicationType.NONE)
.run("--spring.cloud.config.server.git.uri=" + uri,
"--spring.cloud.config.server.git.cloneOnStart=true");
EnvironmentRepository repository = this.context
@@ -287,7 +288,7 @@ public class JGitEnvironmentRepositoryIntegrationTests {
public void findOne_FileAddedToRepo_FindOneSuccess() throws Exception {
ConfigServerTestUtils.prepareLocalRepo();
String uri = ConfigServerTestUtils.copyLocalRepo("config-copy");
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(false)
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(WebApplicationType.NONE)
.run("--spring.cloud.config.server.git.uri=" + uri,
"--spring.cloud.config.server.git.cloneOnStart=true");
EnvironmentRepository repository = this.context
@@ -310,7 +311,7 @@ public class JGitEnvironmentRepositoryIntegrationTests {
@Test
public void findOne_NestedSearchPath_FindOneSuccess() throws IOException {
String uri = ConfigServerTestUtils.prepareLocalRepo("another-config-repo");
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(false)
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(WebApplicationType.NONE)
// TODO: why didn't .properties() work for me?
.run("--spring.cloud.config.server.git.uri=" + uri,
"--spring.cloud.config.server.git.searchPaths=sub",
@@ -326,7 +327,7 @@ public class JGitEnvironmentRepositoryIntegrationTests {
public void findOne_FindInvalidLabel_IllegalStateExceptionThrown()
throws IOException {
String uri = ConfigServerTestUtils.prepareLocalRepo();
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(false)
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(WebApplicationType.NONE)
.properties("spring.cloud.config.server.git.uri:" + uri,
"--spring.cloud.config.server.git.cloneOnStart=true")
.run();
@@ -487,7 +488,7 @@ public class JGitEnvironmentRepositoryIntegrationTests {
public void passphrase() throws IOException {
String uri = ConfigServerTestUtils.prepareLocalRepo("config-repo");
final String passphrase = "thisismypassphrase";
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(false)
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(WebApplicationType.NONE)
.run("--spring.cloud.config.server.git.uri=" + uri,
"--spring.cloud.config.server.git.passphrase=" + passphrase);
JGitEnvironmentRepository repository = this.context.getBean(JGitEnvironmentRepository.class);
@@ -498,7 +499,7 @@ public class JGitEnvironmentRepositoryIntegrationTests {
public void strictHostKeyChecking() throws IOException {
String uri = ConfigServerTestUtils.prepareLocalRepo("config-repo");
final boolean strictHostKeyChecking = true;
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(false)
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(WebApplicationType.NONE)
.run("--spring.cloud.config.server.git.uri=" + uri,
"--spring.cloud.config.server.git.strict-host-key-checking=" + strictHostKeyChecking);
JGitEnvironmentRepository repository = this.context.getBean(JGitEnvironmentRepository.class);

View File

@@ -23,6 +23,8 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import com.jcraft.jsch.Session;
import org.apache.commons.logging.Log;
import org.eclipse.jgit.api.CheckoutCommand;
import org.eclipse.jgit.api.CloneCommand;
@@ -56,6 +58,7 @@ import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.mockito.ArgumentCaptor;
import org.springframework.cloud.config.environment.Environment;
import org.springframework.cloud.config.server.support.AwsCodeCommitCredentialProvider;
import org.springframework.cloud.config.server.support.GitCredentialsProviderFactory;
@@ -63,17 +66,15 @@ import org.springframework.cloud.config.server.support.PassphraseCredentialsProv
import org.springframework.cloud.config.server.test.ConfigServerTestUtils;
import org.springframework.core.env.StandardEnvironment;
import com.jcraft.jsch.Session;
import static junit.framework.TestCase.assertTrue;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertThat;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyString;
import static org.mockito.Matchers.eq;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.mockingDetails;
import static org.mockito.Mockito.times;

View File

@@ -26,6 +26,7 @@ import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.boot.WebApplicationType;
import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
@@ -68,9 +69,11 @@ public class MultipleJGitEnvironmentRepositoryIntegrationTests {
@Test
public void defaultRepo() throws IOException {
String defaultRepoUri = ConfigServerTestUtils.prepareLocalRepo("config-repo");
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(false)
this.context = new SpringApplicationBuilder(TestConfiguration.class)
.web(WebApplicationType.NONE)
.properties("spring.cloud.config.server.git.uri:" + defaultRepoUri).run();
EnvironmentRepository repository = this.context.getBean(EnvironmentRepository.class);
EnvironmentRepository repository = this.context
.getBean(EnvironmentRepository.class);
repository.findOne("bar", "staging", "master");
Environment environment = repository.findOne("bar", "staging", "master");
assertEquals(2, environment.getPropertySources().size());
@@ -84,10 +87,12 @@ public class MultipleJGitEnvironmentRepositoryIntegrationTests {
Map<String, Object> repoMapping = new LinkedHashMap<String, Object>();
repoMapping.put("spring.cloud.config.server.git.repos[test1].pattern", "*test1*");
repoMapping.put("spring.cloud.config.server.git.repos[test1].uri", test1RepoUri);
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(false)
this.context = new SpringApplicationBuilder(TestConfiguration.class)
.web(WebApplicationType.NONE)
.properties("spring.cloud.config.server.git.uri:" + defaultRepoUri)
.properties(repoMapping).run();
EnvironmentRepository repository = this.context.getBean(EnvironmentRepository.class);
EnvironmentRepository repository = this.context
.getBean(EnvironmentRepository.class);
repository.findOne("test1-svc", "staging", "master");
Environment environment = repository.findOne("test1-svc", "staging", "master");
assertEquals(2, environment.getPropertySources().size());
@@ -99,12 +104,15 @@ public class MultipleJGitEnvironmentRepositoryIntegrationTests {
String test1RepoUri = ConfigServerTestUtils.prepareLocalRepo("test1-config-repo");
Map<String, Object> repoMapping = new LinkedHashMap<String, Object>();
repoMapping.put("spring.cloud.config.server.git.repos[test1].pattern", "*/staging");
repoMapping.put("spring.cloud.config.server.git.repos[test1].pattern",
"*/staging");
repoMapping.put("spring.cloud.config.server.git.repos[test1].uri", test1RepoUri);
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(false)
this.context = new SpringApplicationBuilder(TestConfiguration.class)
.web(WebApplicationType.NONE)
.properties("spring.cloud.config.server.git.uri:" + defaultRepoUri)
.properties(repoMapping).run();
EnvironmentRepository repository = this.context.getBean(EnvironmentRepository.class);
EnvironmentRepository repository = this.context
.getBean(EnvironmentRepository.class);
repository.findOne("test1-svc", "staging", "master");
Environment environment = repository.findOne("test1-svc", "staging", "master");
assertEquals(2, environment.getPropertySources().size());
@@ -116,14 +124,18 @@ public class MultipleJGitEnvironmentRepositoryIntegrationTests {
String test1RepoUri = ConfigServerTestUtils.prepareLocalRepo("test1-config-repo");
Map<String, Object> repoMapping = new LinkedHashMap<String, Object>();
repoMapping.put("spring.cloud.config.server.git.repos[test1].pattern", "*/staging");
repoMapping.put("spring.cloud.config.server.git.repos[test1].pattern",
"*/staging");
repoMapping.put("spring.cloud.config.server.git.repos[test1].uri", test1RepoUri);
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(false)
this.context = new SpringApplicationBuilder(TestConfiguration.class)
.web(WebApplicationType.NONE)
.properties("spring.cloud.config.server.git.uri:" + defaultRepoUri)
.properties(repoMapping).run();
EnvironmentRepository repository = this.context.getBean(EnvironmentRepository.class);
EnvironmentRepository repository = this.context
.getBean(EnvironmentRepository.class);
repository.findOne("test1-svc", "staging", "master");
Environment environment = repository.findOne("test1-svc", "staging,cloud", "master");
Environment environment = repository.findOne("test1-svc", "staging,cloud",
"master");
assertEquals(2, environment.getPropertySources().size());
}
@@ -133,16 +145,22 @@ public class MultipleJGitEnvironmentRepositoryIntegrationTests {
String test1RepoUri = ConfigServerTestUtils.prepareLocalRepo("test1-config-repo");
Map<String, Object> repoMapping = new LinkedHashMap<String, Object>();
repoMapping.put("spring.cloud.config.server.git.repos[test1].pattern[0]", "*/staging,*");
repoMapping.put("spring.cloud.config.server.git.repos[test1].pattern[1]", "*/*,staging");
repoMapping.put("spring.cloud.config.server.git.repos[test1].pattern[2]", "*/staging");
repoMapping.put("spring.cloud.config.server.git.repos[test1].pattern[0]",
"*/staging,*");
repoMapping.put("spring.cloud.config.server.git.repos[test1].pattern[1]",
"*/*,staging");
repoMapping.put("spring.cloud.config.server.git.repos[test1].pattern[2]",
"*/staging");
repoMapping.put("spring.cloud.config.server.git.repos[test1].uri", test1RepoUri);
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(false)
this.context = new SpringApplicationBuilder(TestConfiguration.class)
.web(WebApplicationType.NONE)
.properties("spring.cloud.config.server.git.uri:" + defaultRepoUri)
.properties(repoMapping).run();
EnvironmentRepository repository = this.context.getBean(EnvironmentRepository.class);
EnvironmentRepository repository = this.context
.getBean(EnvironmentRepository.class);
repository.findOne("test1-svc", "staging", "master");
Environment environment = repository.findOne("test1-svc", "cloud,staging", "master");
Environment environment = repository.findOne("test1-svc", "cloud,staging",
"master");
assertEquals(2, environment.getPropertySources().size());
environment = repository.findOne("test1-svc", "staging,cloud", "master");
assertEquals(2, environment.getPropertySources().size());
@@ -154,11 +172,13 @@ public class MultipleJGitEnvironmentRepositoryIntegrationTests {
String test1RepoUri = ConfigServerTestUtils.prepareLocalRepo("test1-config-repo");
Map<String, Object> repoMapping = new LinkedHashMap<String, Object>();
repoMapping.put("spring.cloud.config.server.git.repos.test1-svc", test1RepoUri);
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(false)
repoMapping.put("spring.cloud.config.server.git.repos.test1-svc.uri", test1RepoUri);
this.context = new SpringApplicationBuilder(TestConfiguration.class)
.web(WebApplicationType.NONE)
.properties("spring.cloud.config.server.git.uri:" + defaultRepoUri)
.properties(repoMapping).run();
EnvironmentRepository repository = this.context.getBean(EnvironmentRepository.class);
EnvironmentRepository repository = this.context
.getBean(EnvironmentRepository.class);
repository.findOne("test1-svc", "staging", "master");
Environment environment = repository.findOne("test1-svc", "staging", "master");
assertEquals(2, environment.getPropertySources().size());
@@ -166,7 +186,8 @@ public class MultipleJGitEnvironmentRepositoryIntegrationTests {
@Configuration
@EnableConfigurationProperties(ConfigServerProperties.class)
@Import({ PropertyPlaceholderAutoConfiguration.class, EnvironmentRepositoryConfiguration.class })
@Import({ PropertyPlaceholderAutoConfiguration.class,
EnvironmentRepositoryConfiguration.class })
protected static class TestConfiguration {
}

View File

@@ -15,22 +15,22 @@
*/
package org.springframework.cloud.config.server.environment;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import org.junit.Before;
import org.junit.Test;
import org.springframework.cloud.config.environment.Environment;
import org.springframework.cloud.config.server.environment.MultipleJGitEnvironmentRepository.PatternMatchingJGitEnvironmentRepository;
import org.springframework.cloud.config.server.test.ConfigServerTestUtils;
import org.springframework.core.env.StandardEnvironment;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
/**
* @author Andy Chan (iceycake)
* @author Dave Syer

View File

@@ -15,15 +15,17 @@
*/
package org.springframework.cloud.config.server.environment;
import static org.junit.Assert.assertEquals;
import org.junit.Before;
import org.junit.Test;
import org.springframework.boot.WebApplicationType;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.config.environment.Environment;
import org.springframework.cloud.config.server.environment.SearchPathLocator.Locations;
import org.springframework.context.ConfigurableApplicationContext;
import static org.junit.Assert.assertEquals;
/**
* @author Dave Syer
* @author Spencer Gibb
@@ -36,7 +38,7 @@ public class NativeEnvironmentRepositoryTests {
@Before
public void init() {
ConfigurableApplicationContext context = new SpringApplicationBuilder(
NativeEnvironmentRepositoryTests.class).web(false).run();
NativeEnvironmentRepositoryTests.class).web(WebApplicationType.NONE).run();
this.repository = new NativeEnvironmentRepository(context.getEnvironment());
this.repository.setVersion("myversion");
context.close();

View File

@@ -32,6 +32,7 @@ import org.tmatesoft.svn.core.wc2.SvnCommit;
import org.tmatesoft.svn.core.wc2.SvnOperationFactory;
import org.tmatesoft.svn.core.wc2.SvnTarget;
import org.springframework.boot.WebApplicationType;
import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
@@ -77,8 +78,8 @@ public class SVNKitEnvironmentRepositoryIntegrationTests {
public void vanilla() throws Exception {
String uri = ConfigServerTestUtils.prepareLocalSvnRepo(
"src/test/resources/svn-config-repo", "target/config");
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(false)
.profiles("subversion")
this.context = new SpringApplicationBuilder(TestConfiguration.class)
.web(WebApplicationType.NONE).profiles("subversion")
.run("--spring.cloud.config.server.svn.uri=" + uri);
EnvironmentRepository repository = this.context
.getBean(EnvironmentRepository.class);
@@ -91,8 +92,8 @@ public class SVNKitEnvironmentRepositoryIntegrationTests {
public void update() throws Exception {
String uri = ConfigServerTestUtils.prepareLocalSvnRepo(
"src/test/resources/svn-config-repo", "target/config");
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(false)
.profiles("subversion")
this.context = new SpringApplicationBuilder(TestConfiguration.class)
.web(WebApplicationType.NONE).profiles("subversion")
.run("--spring.cloud.config.server.svn.uri=" + uri);
EnvironmentRepository repository = this.context
.getBean(EnvironmentRepository.class);
@@ -129,8 +130,8 @@ public class SVNKitEnvironmentRepositoryIntegrationTests {
public void defaultLabel() throws Exception {
String uri = ConfigServerTestUtils.prepareLocalSvnRepo(
"src/test/resources/svn-config-repo", "target/config");
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(false)
.profiles("subversion")
this.context = new SpringApplicationBuilder(TestConfiguration.class)
.web(WebApplicationType.NONE).profiles("subversion")
.run("--spring.cloud.config.server.svn.uri=" + uri);
SvnKitEnvironmentRepository repository = this.context
.getBean(SvnKitEnvironmentRepository.class);
@@ -141,8 +142,8 @@ public class SVNKitEnvironmentRepositoryIntegrationTests {
public void invalidLabel() throws Exception {
String uri = ConfigServerTestUtils.prepareLocalSvnRepo(
"src/test/resources/svn-config-repo", "target/config");
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(false)
.profiles("subversion")
this.context = new SpringApplicationBuilder(TestConfiguration.class)
.web(WebApplicationType.NONE).profiles("subversion")
.run("--spring.cloud.config.server.svn.uri=" + uri);
EnvironmentRepository repository = this.context
.getBean(EnvironmentRepository.class);
@@ -155,8 +156,8 @@ public class SVNKitEnvironmentRepositoryIntegrationTests {
public void branchLabel() throws Exception {
String uri = ConfigServerTestUtils.prepareLocalSvnRepo(
"src/test/resources/svn-config-repo", "target/config");
this.context = new SpringApplicationBuilder(TestConfiguration.class).web(false)
.profiles("subversion")
this.context = new SpringApplicationBuilder(TestConfiguration.class)
.web(WebApplicationType.NONE).profiles("subversion")
.run("--spring.cloud.config.server.svn.uri=" + uri);
EnvironmentRepository repository = this.context
.getBean(EnvironmentRepository.class);

View File

@@ -16,16 +16,18 @@
package org.springframework.cloud.config.server.resource;
import static org.junit.Assert.assertNotNull;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.boot.WebApplicationType;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.config.server.environment.NativeEnvironmentRepository;
import org.springframework.cloud.config.server.environment.NativeEnvironmentRepositoryTests;
import org.springframework.context.ConfigurableApplicationContext;
import static org.junit.Assert.assertNotNull;
/**
* @author Dave Syer
*
@@ -46,7 +48,7 @@ public class GenericResourceRepositoryTests {
@Before
public void init() {
this.context = new SpringApplicationBuilder(
NativeEnvironmentRepositoryTests.class).web(false).run();
NativeEnvironmentRepositoryTests.class).web(WebApplicationType.NONE).run();
this.nativeRepository = new NativeEnvironmentRepository(this.context.getEnvironment());
this.repository = new GenericResourceRepository(
this.nativeRepository);

View File

@@ -16,18 +16,20 @@
package org.springframework.cloud.config.server.resource;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.boot.WebApplicationType;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.config.server.environment.NativeEnvironmentRepository;
import org.springframework.cloud.config.server.environment.NativeEnvironmentRepositoryTests;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.mock.web.MockHttpServletRequest;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
/**
* @author Dave Syer
*
@@ -49,7 +51,7 @@ public class ResourceControllerTests {
@Before
public void init() {
this.context = new SpringApplicationBuilder(
NativeEnvironmentRepositoryTests.class).web(false).run();
NativeEnvironmentRepositoryTests.class).web(WebApplicationType.NONE).run();
this.environmentRepository = new NativeEnvironmentRepository(
this.context.getEnvironment());
this.repository = new GenericResourceRepository(this.environmentRepository);