Merge branch '2.2.x'

This commit is contained in:
spencergibb
2020-09-09 12:54:47 -04:00
59 changed files with 323 additions and 109 deletions

View File

@@ -1,32 +1,28 @@
version: 2
machine: true
jobs:
build:
docker:
- image: springcloud/pipeline-base
# user: appuser
machine:
image: ubuntu-1604:202007-01
environment:
_JAVA_OPTIONS: "-Xms1024m -Xmx2048m"
TERM: dumb
CACHE_VERSION: 1
branches:
ignore:
- gh-pages # list of branches to ignore
steps:
- checkout
- restore_cache:
key: sc-consul-{{ .Branch }}
- run:
command: ./src/main/bash/ci_install_consul.sh
key: sc-consul-{{ .Environment.CACHE_VERSION }}-{{ .Branch }}
- run:
name: "Download dependencies"
command: |
./mvnw -s .settings.xml -U --fail-never dependency:go-offline || true
- save_cache:
key: sc-consul-{{ .Branch }}
key: sc-consul-{{ .Environment.CACHE_VERSION }}-{{ .Branch }}
paths:
- ~/.m2
- run:
name: "Running Consul"
command: ./src/test/bash/ci_run_consul.sh
- run:
name: "Running build"
command: ./mvnw -s .settings.xml clean org.jacoco:jacoco-maven-plugin:prepare-agent install -U -P sonar -nsu --batch-mode -Dmaven.test.redirectTestOutputToFile=true -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn

View File

@@ -26,6 +26,7 @@
<spring-cloud-deployer.version>1.0.3.RELEASE</spring-cloud-deployer.version>
<spring-cloud-openfeign.version>3.0.0-SNAPSHOT</spring-cloud-openfeign.version>
<spring-cloud-stream.version>3.1.0-SNAPSHOT</spring-cloud-stream.version>
<testcontainers.version>1.14.3</testcontainers.version>
</properties>
<scm>
@@ -163,6 +164,11 @@
</exclusions>
</dependency>
<!-- end archaius deps -->
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>testcontainers</artifactId>
<version>${testcontainers.version}</version>
</dependency>
</dependencies>
</dependencyManagement>

View File

@@ -1,6 +1,3 @@
#!/bin/bash
trap 'pkill -9 consul; EXIT' 0
./src/main/bash/ci_install_consul.sh
./src/test/bash/ci_run_consul.sh
./mvnw clean install -B -Pdocs ${@}

View File

@@ -1,5 +1,3 @@
#!/bin/bash
./src/main/bash/ci_install_consul.sh
./src/test/bash/ci_run_consul.sh
./mvnw clean install -B -Pdocs -DskipTests -fae

View File

@@ -68,7 +68,18 @@
<version>2.0.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>testcontainers</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-consul-core</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
</dependencies>
</project>

View File

@@ -28,6 +28,7 @@ import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.cloud.stream.annotation.EnableBinding;
import org.springframework.cloud.stream.annotation.Output;
import org.springframework.context.annotation.Bean;
@@ -36,6 +37,7 @@ import org.springframework.messaging.Message;
import org.springframework.messaging.MessageChannel;
import org.springframework.messaging.support.MessageBuilder;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
@@ -55,6 +57,7 @@ import static org.springframework.test.annotation.DirtiesContext.ClassMode.AFTER
@RunWith(SpringRunner.class)
@SpringBootTest(classes = ConsulBinderApplicationTests.Application.class)
@DirtiesContext(classMode = AFTER_EACH_TEST_METHOD)
@ContextConfiguration(initializers = ConsulTestcontainers.class)
public class ConsulBinderApplicationTests {
@Rule

View File

@@ -23,6 +23,7 @@ import org.junit.rules.ExpectedException;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.cloud.stream.annotation.EnableBinding;
import org.springframework.cloud.stream.annotation.Output;
import org.springframework.context.annotation.Configuration;
@@ -43,6 +44,7 @@ public class ConsulBinderConfigurationTests {
public void consulBinderDisabledWorks() {
this.exception.expectMessage(containsString("no proper implementation found"));
new SpringApplicationBuilder(Application.class)
.initializers(new ConsulTestcontainers())
.properties("spring.cloud.consul.binder.enabled=false").run();
}
@@ -51,6 +53,7 @@ public class ConsulBinderConfigurationTests {
public void consulDisabledDisablesBinder() {
this.exception.expectMessage(containsString("no proper implementation found"));
new SpringApplicationBuilder(Application.class)
.initializers(new ConsulTestcontainers())
.properties("spring.cloud.consul.enabled=false").run();
}

View File

@@ -78,6 +78,18 @@
<artifactId>junit-vintage-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>testcontainers</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-consul-core</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
</dependencies>
</project>

View File

@@ -19,6 +19,7 @@ package org.springframework.cloud.consul.config;
import org.junit.Test;
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.context.annotation.Bean;
import static org.assertj.core.api.Assertions.assertThat;
@@ -36,6 +37,7 @@ public class ConsulConfigBootstrapConfigurationTests {
@Test
public void testConfigPropsBeanBacksOff() {
this.contextRunner.withUserConfiguration(TestConfig.class)
.withInitializer(new ConsulTestcontainers())
.withUserConfiguration(ConsulConfigBootstrapConfiguration.class)
.run(context -> {
ConsulConfigProperties config = context
@@ -54,7 +56,7 @@ public class ConsulConfigBootstrapConfigurationTests {
@Test
public void testConfigPropsBeanKicksIn() {
this.contextRunner.withUserConfiguration(ConsulConfigBootstrapConfiguration.class)
.run(context -> {
.withInitializer(new ConsulTestcontainers()).run(context -> {
ConsulConfigProperties config = context
.getBean(ConsulConfigProperties.class);
assertThat(config.getPrefix()).as("Prefix did not match")
@@ -64,19 +66,19 @@ public class ConsulConfigBootstrapConfigurationTests {
});
}
}
/**
* Test config that simulates a "user provided bean".
*/
private static class TestConfig {
/**
* 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;
}
@Bean
public ConsulConfigProperties consulConfigProperties() {
ConsulConfigProperties config = new ConsulConfigProperties();
config.setPrefix("platform-config");
config.setDefaultContext("defaults");
return config;
}
}

View File

@@ -21,7 +21,7 @@ import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.cloud.consul.ConsulProperties;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import static org.assertj.core.api.Assertions.assertThat;
@@ -31,8 +31,8 @@ public class ConsulPropertyPrefixTests {
@Before
public void setup() {
ConsulProperties properties = new ConsulProperties();
this.client = new ConsulClient(properties.getHost(), properties.getPort());
ConsulTestcontainers.start();
this.client = ConsulTestcontainers.client();
}
@After

View File

@@ -26,7 +26,7 @@ import org.junit.Test;
import org.springframework.boot.WebApplicationType;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.consul.ConsulProperties;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.ConfigurableEnvironment;
@@ -64,13 +64,10 @@ public class ConsulPropertySourceLocatorAppNameCustomizedTests {
private ConsulClient client;
private ConsulProperties properties;
@Before
public void setup() {
this.properties = new ConsulProperties();
this.client = new ConsulClient(this.properties.getHost(),
this.properties.getPort());
ConsulTestcontainers.start();
this.client = ConsulTestcontainers.client();
this.client.deleteKVValues(PREFIX);
this.client.setKVValue(KEY1, VALUE1);
this.client.setKVValue(KEY2, VALUE2);
@@ -79,11 +76,12 @@ public class ConsulPropertySourceLocatorAppNameCustomizedTests {
.web(WebApplicationType.NONE)
.run("--spring.application.name=testConsulPropertySourceLocatorAppNameCustomized",
"--spring.config.use-legacy-processing=true",
"--spring.cloud.consul.host=" + ConsulTestcontainers.getHost(),
"--spring.cloud.consul.port=" + ConsulTestcontainers.getPort(),
"--spring.cloud.consul.config.name=" + CONFIG_NAME,
"--spring.cloud.consul.config.prefix=" + ROOT);
this.client = this.context.getBean(ConsulClient.class);
this.properties = this.context.getBean(ConsulProperties.class);
this.environment = this.context.getEnvironment();
}

View File

@@ -26,7 +26,7 @@ import org.junit.Test;
import org.springframework.boot.WebApplicationType;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.consul.ConsulProperties;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.ConfigurableEnvironment;
@@ -61,13 +61,10 @@ public class ConsulPropertySourceLocatorFilesTests {
private ConsulClient client;
private ConsulProperties properties;
@Before
public void setup() {
this.properties = new ConsulProperties();
this.client = new ConsulClient(this.properties.getHost(),
this.properties.getPort());
ConsulTestcontainers.start();
this.client = ConsulTestcontainers.client();
this.client.setKVValue(ROOT + APPLICATION_YML, "foo: bar\nmy.baz: ${foo}");
this.client.setKVValue(ROOT + APPLICATION_DEV_YML,
"foo: bar-dev\nmy.baz: ${foo}");
@@ -79,13 +76,14 @@ public class ConsulPropertySourceLocatorFilesTests {
this.context = new SpringApplicationBuilder(Config.class)
.web(WebApplicationType.NONE).run("--spring.application.name=" + APP_NAME,
"--spring.config.use-legacy-processing=true",
"--spring.cloud.consul.host=" + ConsulTestcontainers.getHost(),
"--spring.cloud.consul.port=" + ConsulTestcontainers.getPort(),
"--spring.cloud.consul.config.prefix=" + ROOT,
"--spring.cloud.consul.config.format=FILES",
"--spring.profiles.active=dev",
"spring.cloud.consul.config.watch.delay=1");
this.client = this.context.getBean(ConsulClient.class);
this.properties = this.context.getBean(ConsulProperties.class);
this.environment = this.context.getEnvironment();
}

View File

@@ -29,7 +29,7 @@ import org.junit.Test;
import org.springframework.boot.WebApplicationType;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.consul.ConsulProperties;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.cloud.context.environment.EnvironmentChangeEvent;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Bean;
@@ -80,13 +80,10 @@ public class ConsulPropertySourceLocatorTests {
private ConsulClient client;
private ConsulProperties properties;
@Before
public void setup() {
this.properties = new ConsulProperties();
this.client = new ConsulClient(this.properties.getHost(),
this.properties.getPort());
ConsulTestcontainers.start();
this.client = ConsulTestcontainers.client();
this.client.deleteKVValues(PREFIX);
this.client.setKVValue(KEY1, VALUE1);
this.client.setKVValue(KEY2, VALUE2);
@@ -94,11 +91,12 @@ public class ConsulPropertySourceLocatorTests {
this.context = new SpringApplicationBuilder(Config.class)
.web(WebApplicationType.NONE).run("--SPRING_APPLICATION_NAME=" + APP_NAME,
"--spring.config.use-legacy-processing=true",
"--spring.cloud.consul.host=" + ConsulTestcontainers.getHost(),
"--spring.cloud.consul.port=" + ConsulTestcontainers.getPort(),
"--spring.cloud.consul.config.prefix=" + ROOT,
"spring.cloud.consul.config.watch.delay=10");
this.client = this.context.getBean(ConsulClient.class);
this.properties = this.context.getBean(ConsulProperties.class);
this.environment = this.context.getEnvironment();
}

View File

@@ -23,7 +23,7 @@ import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.cloud.consul.ConsulProperties;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import static org.assertj.core.api.Assertions.assertThat;
@@ -34,8 +34,6 @@ public class ConsulPropertySourceTests {
private ConsulClient client;
private ConsulProperties properties;
private String prefix;
private String kvContext;
@@ -44,11 +42,10 @@ public class ConsulPropertySourceTests {
@Before
public void setup() {
this.properties = new ConsulProperties();
ConsulTestcontainers.start();
this.prefix = "consulPropertySourceTests"
+ new Random().nextInt(Integer.MAX_VALUE);
this.client = new ConsulClient(this.properties.getHost(),
this.properties.getPort());
this.client = ConsulTestcontainers.client();
}
@After

View File

@@ -98,6 +98,26 @@
<artifactId>junit-vintage-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>testcontainers</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@@ -24,13 +24,20 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.core.style.ToStringCreator;
import org.springframework.validation.annotation.Validated;
import static org.springframework.cloud.consul.ConsulProperties.PREFIX;
/**
* @author Spencer Gibb
*/
@ConfigurationProperties("spring.cloud.consul")
@ConfigurationProperties(PREFIX)
@Validated
public class ConsulProperties {
/**
* Prefix for configuration properties.
*/
public static final String PREFIX = "spring.cloud.consul";
/** Consul agent hostname. Defaults to 'localhost'. */
@NotNull
private String host = "localhost";

View File

@@ -28,6 +28,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.util.ReflectionTestUtils;
@@ -39,6 +41,7 @@ import static org.assertj.core.api.Assertions.assertThat;
"spring.cloud.consul.tls.key-store-password=letmein",
"spring.cloud.consul.tls.certificate-path=src/test/resources/trustStore.jks",
"spring.cloud.consul.tls.certificate-password=change_me" })
@ContextConfiguration(initializers = ConsulTestcontainers.class)
public class ConsulAutoConfigurationTests {
@Autowired

View File

@@ -25,6 +25,8 @@ import org.springframework.boot.actuate.health.HealthEndpoint;
import org.springframework.boot.actuate.health.Status;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import static org.assertj.core.api.Assertions.assertThat;
@@ -34,6 +36,7 @@ import static org.assertj.core.api.Assertions.assertThat;
*/
@RunWith(SpringRunner.class)
@SpringBootTest
@ContextConfiguration(initializers = ConsulTestcontainers.class)
public class ConsulHealthIndicatorUpTest {
@Autowired

View File

@@ -0,0 +1,83 @@
/*
* Copyright 2013-2020 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.cloud.consul.test;
import java.util.HashMap;
import com.ecwid.consul.v1.ConsulClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testcontainers.containers.GenericContainer;
import org.testcontainers.containers.output.Slf4jLogConsumer;
import org.testcontainers.containers.wait.strategy.Wait;
import org.springframework.cloud.consul.ConsulProperties;
import org.springframework.context.ApplicationContextInitializer;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.env.MapPropertySource;
import org.springframework.core.env.MutablePropertySources;
public class ConsulTestcontainers
implements ApplicationContextInitializer<ConfigurableApplicationContext> {
static final Logger logger = LoggerFactory.getLogger(ConsulTestcontainers.class);
public static GenericContainer<?> consul = new GenericContainer<>("consul:1.7.2")
.withLogConsumer(new Slf4jLogConsumer(logger).withSeparateOutputStreams())
.waitingFor(Wait.forHttp("/v1/status/leader")).withExposedPorts(8500)
.withCommand("agent", "-dev", "-server", "-bootstrap", "-client", "0.0.0.0",
"-log-level", "trace");
@Override
public void initialize(ConfigurableApplicationContext context) {
start();
MutablePropertySources sources = context.getEnvironment().getPropertySources();
if (!sources.contains("consulTestcontainer")) {
Integer mappedPort = consul.getMappedPort(8500);
HashMap<String, Object> map = new HashMap<>();
map.put(ConsulProperties.PREFIX + ".port", String.valueOf(mappedPort));
map.put(ConsulProperties.PREFIX + ".host", consul.getContainerIpAddress());
sources.addFirst(new MapPropertySource("consulTestcontainer", map));
}
}
public static void start() {
consul.start();
}
public static Integer getPort() {
if (!consul.isRunning()) {
throw new IllegalStateException("consul Testcontainer is not running");
}
return consul.getMappedPort(8500);
}
public static String getHost() {
if (!consul.isRunning()) {
throw new IllegalStateException("consul Testcontainer is not running");
}
return consul.getContainerIpAddress();
}
public static ConsulClient client() {
return new ConsulClient(getHost(), getPort());
}
}

View File

@@ -122,6 +122,18 @@
<artifactId>reactor-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>testcontainers</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-consul-core</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
</dependencies>
</project>

View File

@@ -27,7 +27,9 @@ import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import static org.assertj.core.api.Assertions.assertThat;
@@ -42,6 +44,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
"spring.cloud.consul.discovery.preferIpAddress=true",
"consul.token=2d2e6b3b-1c82-40ab-8171-54609d8ad304" },
webEnvironment = RANDOM_PORT)
@ContextConfiguration(initializers = ConsulTestcontainers.class)
public class ConsulDiscoveryClientAclTests {
@Autowired
@@ -58,10 +61,11 @@ public class ConsulDiscoveryClientAclTests {
@Test
public void getInstancesForSecondServiceWorks() throws Exception {
new SpringApplicationBuilder(MyTestConfig.class).run(
"--spring.application.name=testSecondServiceAcl", "--server.port=0",
"--spring.cloud.consul.discovery.preferIpAddress=true",
"--consul.token=2d2e6b3b-1c82-40ab-8171-54609d8ad304");
new SpringApplicationBuilder(MyTestConfig.class)
.initializers(new ConsulTestcontainers())
.run("--spring.application.name=testSecondServiceAcl", "--server.port=0",
"--spring.cloud.consul.discovery.preferIpAddress=true",
"--consul.token=2d2e6b3b-1c82-40ab-8171-54609d8ad304");
List<ServiceInstance> instances = this.discoveryClient
.getInstances("testSecondServiceAcl");

View File

@@ -28,7 +28,9 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import static org.assertj.core.api.Assertions.assertThat;
@@ -48,6 +50,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
"spring.cloud.consul.discovery.metadata[foo]=bar",
"spring.cloud.consul.discovery.metadata[foo2]=bar2" },
webEnvironment = RANDOM_PORT)
@ContextConfiguration(initializers = ConsulTestcontainers.class)
public class ConsulDiscoveryClientCustomizedTests {
@Autowired

View File

@@ -30,9 +30,11 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import static org.assertj.core.api.Assertions.assertThat;
@@ -48,6 +50,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
"spring.cloud.consul.discovery.catalogServicesWatch.enabled=false",
"spring.cloud.consul.discovery.defaultQueryTag=intg" })
@DirtiesContext
@ContextConfiguration(initializers = ConsulTestcontainers.class)
public class ConsulDiscoveryClientDefaultQueryTagTests {
public static final String NAME = "consulServiceDefaultTag";

View File

@@ -26,7 +26,9 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import static org.assertj.core.api.Assertions.assertThat;
@@ -42,6 +44,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
"spring.cloud.consul.discovery.scheme=https" },
classes = ConsulDiscoveryClientHttpsTests.MyTestConfig.class,
webEnvironment = RANDOM_PORT)
@ContextConfiguration(initializers = ConsulTestcontainers.class)
public class ConsulDiscoveryClientHttpsTests {
@Autowired

View File

@@ -29,7 +29,9 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import static org.assertj.core.api.Assertions.assertThat;
@@ -46,6 +48,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
"spring.cloud.consul.discovery.metadata[foo]=bar" },
classes = ConsulDiscoveryClientTests.MyTestConfig.class,
webEnvironment = RANDOM_PORT)
@ContextConfiguration(initializers = ConsulTestcontainers.class)
public class ConsulDiscoveryClientTests {
@Autowired

View File

@@ -27,6 +27,8 @@ import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalancerClient;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import static org.assertj.core.api.Assertions.assertThat;
@@ -41,6 +43,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
"spring.cloud.consul.discovery.prefer-ip-address=true",
"spring.cloud.consul.discovery.tags=foo=bar" },
webEnvironment = RANDOM_PORT)
@ContextConfiguration(initializers = ConsulTestcontainers.class)
public class ConsulLoadbalancerClientTests {
@Autowired

View File

@@ -33,8 +33,10 @@ import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationConfiguration;
import org.springframework.cloud.consul.ConsulAutoConfiguration;
import org.springframework.cloud.consul.support.ConsulHeartbeatAutoConfiguration;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import static com.ecwid.consul.v1.health.model.Check.CheckStatus.CRITICAL;
@@ -52,6 +54,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
"spring.cloud.consul.discovery.heartbeat.enabled=true",
"spring.cloud.consul.discovery.heartbeat.ttlValue=2" },
webEnvironment = RANDOM_PORT)
@ContextConfiguration(initializers = ConsulTestcontainers.class)
public class TtlSchedulerRemoveTests {
@Autowired

View File

@@ -32,8 +32,10 @@ import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationConfiguration;
import org.springframework.cloud.consul.ConsulAutoConfiguration;
import org.springframework.cloud.consul.support.ConsulHeartbeatAutoConfiguration;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import static com.ecwid.consul.v1.health.model.Check.CheckStatus.PASSING;
@@ -51,6 +53,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
"spring.cloud.consul.discovery.heartbeat.ttlValue=2",
"management.server.port=0" },
webEnvironment = RANDOM_PORT)
@ContextConfiguration(initializers = ConsulTestcontainers.class)
public class TtlSchedulerTests {
@Autowired

View File

@@ -26,6 +26,7 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.config.client.ConfigClientProperties;
import org.springframework.cloud.consul.discovery.ConsulDiscoveryClient;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.cloud.test.ClassPathExclusions;
import org.springframework.cloud.test.ModifiedClassPathRunner;
import org.springframework.context.ConfigurableApplicationContext;
@@ -63,8 +64,13 @@ public class DiscoveryClientConfigServiceAutoConfigurationTests {
@Test
public void onWhenRequested() throws Exception {
ConsulTestcontainers.start();
Integer port = ConsulTestcontainers.getPort();
String host = ConsulTestcontainers.getHost();
setup("server.port=0", "spring.cloud.config.discovery.enabled=true",
"spring.cloud.consul.port=" + port, "spring.cloud.consul.host=" + host,
"logging.level.org.springframework.cloud.config.client=DEBUG",
"spring.cloud.consul.discovery.catalog-services-watch.enabled=false",
"spring.cloud.consul.discovery.test.enabled:true",
"spring.application.name=discoveryclientconfigservicetest",
"spring.jmx.enabled=false", "spring.cloud.consul.discovery.port:7001",

View File

@@ -27,7 +27,9 @@ import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationConfiguration;
import org.springframework.cloud.consul.ConsulAutoConfiguration;
import org.springframework.cloud.consul.support.ConsulHeartbeatAutoConfiguration;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import static org.assertj.core.api.Assertions.assertThat;
@@ -43,6 +45,7 @@ import static org.assertj.core.api.Assertions.assertThat;
"spring.cloud.consul.discovery.health-check-critical-timeout=1m",
"spring.cloud.consul.discovery.heartbeat.enabled=true" },
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@ContextConfiguration(initializers = ConsulTestcontainers.class)
public class ConsulAutoRegistrationCheckTtlDeregisterCriticalServiceTests {
@Autowired

View File

@@ -27,7 +27,9 @@ import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationConfiguration;
import org.springframework.cloud.consul.ConsulAutoConfiguration;
import org.springframework.cloud.consul.discovery.ConsulDiscoveryProperties;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import static org.assertj.core.api.Assertions.assertThat;
@@ -42,6 +44,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
"spring.application.name=myTestService-DiscoveryHealthCheckTlsSkipVerify",
"spring.cloud.consul.discovery.health-check-headers.X-Config-Token=ACCESSTOKEN" },
webEnvironment = RANDOM_PORT)
@ContextConfiguration(initializers = ConsulTestcontainers.class)
public class ConsulAutoRegistrationHealthCheckHeadersTests {
@Autowired

View File

@@ -27,7 +27,9 @@ import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationConfiguration;
import org.springframework.cloud.consul.ConsulAutoConfiguration;
import org.springframework.cloud.consul.discovery.ConsulDiscoveryProperties;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import static org.assertj.core.api.Assertions.assertThat;
@@ -43,6 +45,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
"spring.application.name=myTestService-DiscoveryHealthCheckTlsSkipVerify",
"spring.cloud.consul.discovery.health-check-tls-skip-verify=true" },
webEnvironment = RANDOM_PORT)
@ContextConfiguration(initializers = ConsulTestcontainers.class)
public class ConsulAutoRegistrationHealthCheckTlsSkipVerifyTests {
@Autowired

View File

@@ -27,7 +27,9 @@ import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationConfiguration;
import org.springframework.cloud.consul.ConsulAutoConfiguration;
import org.springframework.cloud.consul.discovery.ConsulDiscoveryProperties;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import static org.assertj.core.api.Assertions.assertThat;
@@ -44,6 +46,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
"spring.cloud.consul.discovery.include-hostname-in-instance-id=true",
"spring.cloud.client.hostname=testhostname" },
webEnvironment = RANDOM_PORT)
@ContextConfiguration(initializers = ConsulTestcontainers.class)
public class ConsulAutoRegistrationIncludeHostnameInInstanceIdTests {
@Autowired

View File

@@ -31,7 +31,9 @@ import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationConfiguration;
import org.springframework.cloud.consul.ConsulAutoConfiguration;
import org.springframework.cloud.consul.discovery.ConsulDiscoveryProperties;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import static org.assertj.core.api.Assertions.assertThat;
@@ -46,6 +48,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
"spring.cloud.consul.discovery.instanceId=myTestNotDeRegisteredService-D",
"spring.cloud.consul.discovery.deregister=false" },
webEnvironment = RANDOM_PORT)
@ContextConfiguration(initializers = ConsulTestcontainers.class)
public class ConsulAutoServiceDeRegistrationDisabledTests {
@Autowired

View File

@@ -30,7 +30,9 @@ import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationConfiguration;
import org.springframework.cloud.consul.ConsulAutoConfiguration;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.util.StringUtils;
@@ -48,6 +50,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
"spring.cloud.consul.discovery.serviceName=myprefix-${spring.application.name}",
"spring.cloud.consul.discovery.preferAgentAddress=true" },
webEnvironment = RANDOM_PORT)
@ContextConfiguration(initializers = ConsulTestcontainers.class)
public class ConsulAutoServiceRegistrationCustomizedAgentAddressTests {
@Autowired

View File

@@ -29,7 +29,9 @@ import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationConfiguration;
import org.springframework.cloud.consul.ConsulAutoConfiguration;
import org.springframework.cloud.consul.discovery.ConsulDiscoveryProperties;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.util.SocketUtils;
@@ -44,6 +46,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
classes = ConsulAutoServiceRegistrationCustomizedDiscoveryPortTests.TestConfig.class,
properties = { "spring.application.name=myTestService-DiscoveryPort" },
webEnvironment = DEFINED_PORT)
@ContextConfiguration(initializers = ConsulTestcontainers.class)
public class ConsulAutoServiceRegistrationCustomizedDiscoveryPortTests {
@Autowired

View File

@@ -32,7 +32,9 @@ import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationConfiguration;
import org.springframework.cloud.consul.ConsulAutoConfiguration;
import org.springframework.cloud.consul.discovery.ConsulDiscoveryProperties;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import static org.assertj.core.api.Assertions.assertThat;
@@ -48,6 +50,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
"spring.cloud.consul.discovery.instanceId=myTestService1-WithGroup",
"spring.cloud.consul.discovery.instanceGroup=test" },
webEnvironment = RANDOM_PORT)
@ContextConfiguration(initializers = ConsulTestcontainers.class)
public class ConsulAutoServiceRegistrationCustomizedInstanceGroupTests {
@Autowired

View File

@@ -30,7 +30,9 @@ import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationConfiguration;
import org.springframework.cloud.consul.ConsulAutoConfiguration;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import static org.assertj.core.api.Assertions.assertThat;
@@ -47,6 +49,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
"spring.cloud.consul.discovery.instanceZone=zone1",
"spring.cloud.consul.discovery.defaultZoneMetadataName=myZone" },
webEnvironment = RANDOM_PORT)
@ContextConfiguration(initializers = ConsulTestcontainers.class)
public class ConsulAutoServiceRegistrationCustomizedInstanceZoneTests {
@Autowired

View File

@@ -32,7 +32,9 @@ import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationConfiguration;
import org.springframework.cloud.consul.ConsulAutoConfiguration;
import org.springframework.cloud.consul.discovery.ConsulDiscoveryProperties;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.util.StringUtils;
@@ -54,6 +56,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
"spring.cloud.consul.discovery.serviceName=myprefix-${spring.application.name}",
"management.server.port=0" },
webEnvironment = RANDOM_PORT)
@ContextConfiguration(initializers = ConsulTestcontainers.class)
public class ConsulAutoServiceRegistrationCustomizedManagementServicePortTests {
@Autowired

View File

@@ -36,7 +36,9 @@ import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationConfiguration;
import org.springframework.cloud.consul.ConsulAutoConfiguration;
import org.springframework.cloud.consul.discovery.ConsulDiscoveryProperties;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import static org.assertj.core.api.Assertions.assertThat;
@@ -64,6 +66,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
"spring.cloud.consul.discovery.metadata.key1=value1",
"spring.cloud.consul.discovery.metadata.key2=value2" },
webEnvironment = RANDOM_PORT)
@ContextConfiguration(initializers = ConsulTestcontainers.class)
public class ConsulAutoServiceRegistrationCustomizedPropsTests {
@Autowired

View File

@@ -30,7 +30,9 @@ import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationConfiguration;
import org.springframework.cloud.consul.ConsulAutoConfiguration;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import static org.assertj.core.api.Assertions.assertThat;
@@ -46,6 +48,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
"spring.cloud.consul.discovery.instanceId=myTestService1-CC",
"spring.cloud.consul.discovery.serviceName=myprefix-${spring.application.name}" },
webEnvironment = RANDOM_PORT)
@ContextConfiguration(initializers = ConsulTestcontainers.class)
public class ConsulAutoServiceRegistrationCustomizedServiceNameTests {
@Autowired

View File

@@ -28,7 +28,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import static org.assertj.core.api.Assertions.assertThat;
@@ -44,6 +46,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
"spring.cloud.consul.discovery.instanceId=myTestService1-WithServletContext",
"server.servlet.context-path=/customContext" },
webEnvironment = RANDOM_PORT)
@ContextConfiguration(initializers = ConsulTestcontainers.class)
public class ConsulAutoServiceRegistrationCustomizedServletContextTests {
@Autowired

View File

@@ -28,7 +28,9 @@ import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationC
import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationProperties;
import org.springframework.cloud.consul.ConsulAutoConfiguration;
import org.springframework.cloud.consul.discovery.ConsulDiscoveryProperties;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.context.annotation.Bean;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import static org.assertj.core.api.Assertions.assertThat;
@@ -41,6 +43,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
@SpringBootTest(classes = ConsulAutoServiceRegistrationCustomizedTests.MyTestConfig.class,
properties = { "spring.application.name=testCustomAutoServiceRegistration" },
webEnvironment = RANDOM_PORT)
@ContextConfiguration(initializers = ConsulTestcontainers.class)
public class ConsulAutoServiceRegistrationCustomizedTests {
@Autowired

View File

@@ -24,6 +24,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.consul.discovery.ConsulDiscoveryProperties;
import org.springframework.cloud.consul.serviceregistry.ConsulAutoServiceRegistrationCustomizedPropsTests.TestPropsConfig;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import static org.assertj.core.api.Assertions.assertThat;
@@ -41,6 +43,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
"spring.cloud.consul.discovery.healthCheckInterval=19s",
"spring.cloud.consul.discovery.healthCheckTimeout=12s" },
webEnvironment = RANDOM_PORT)
@ContextConfiguration(initializers = ConsulTestcontainers.class)
public class ConsulAutoServiceRegistrationDefaultCheckTests {
@Autowired

View File

@@ -30,7 +30,9 @@ import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationConfiguration;
import org.springframework.cloud.consul.ConsulAutoConfiguration;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import static org.assertj.core.api.Assertions.assertThat;
@@ -44,6 +46,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
properties = { "spring.application.name=myTestService2-DD",
"spring.cloud.consul.discovery.instanceId=myTestService2-DD" },
webEnvironment = RANDOM_PORT)
@ContextConfiguration(initializers = ConsulTestcontainers.class)
public class ConsulAutoServiceRegistrationDefaultPortTests {
@Autowired

View File

@@ -25,6 +25,7 @@ import org.junit.Test;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.runner.WebApplicationContextRunner;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.context.annotation.Configuration;
import static org.assertj.core.api.Assertions.assertThat;
@@ -62,7 +63,7 @@ public class ConsulAutoServiceRegistrationDisabledTests {
new WebApplicationContextRunner().withUserConfiguration(TestConfig.class)
.withPropertyValues("spring.application.name=" + testName,
disableProperty + "=false", "server.port=0")
.run(context -> {
.withInitializer(new ConsulTestcontainers()).run(context -> {
assertThat(context)
.doesNotHaveBean(ConsulAutoServiceRegistration.class);

View File

@@ -29,8 +29,10 @@ import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationConfiguration;
import org.springframework.cloud.consul.ConsulAutoConfiguration;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.context.annotation.Bean;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.ContextConfiguration;
import static org.hamcrest.Matchers.isA;
@@ -39,6 +41,7 @@ import static org.hamcrest.Matchers.isA;
* @author Venil Noronha
*/
@DirtiesContext
@ContextConfiguration(initializers = ConsulTestcontainers.class)
public class ConsulAutoServiceRegistrationFailFastTests {
@Rule

View File

@@ -30,8 +30,10 @@ import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationConfiguration;
import org.springframework.cloud.consul.ConsulAutoConfiguration;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import static org.assertj.core.api.Assertions.assertThat;
@@ -48,6 +50,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
"spring.cloud.consul.discovery.registerHealthCheck=false",
"management.server.port=4453" },
webEnvironment = RANDOM_PORT)
@ContextConfiguration(initializers = ConsulTestcontainers.class)
public class ConsulAutoServiceRegistrationManagementCustomizerTests {
@Autowired

View File

@@ -31,7 +31,9 @@ import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationConfiguration;
import org.springframework.cloud.consul.ConsulAutoConfiguration;
import org.springframework.cloud.consul.discovery.ConsulDiscoveryProperties;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.util.StringUtils;
@@ -50,6 +52,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
"spring.cloud.consul.discovery.managementPort=4453",
"management.port=0" },
webEnvironment = RANDOM_PORT)
@ContextConfiguration(initializers = ConsulTestcontainers.class)
public class ConsulAutoServiceRegistrationManagementDisabledServiceTests {
@Autowired

View File

@@ -31,7 +31,9 @@ import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationConfiguration;
import org.springframework.cloud.consul.ConsulAutoConfiguration;
import org.springframework.cloud.consul.discovery.ConsulDiscoveryProperties;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.util.StringUtils;
@@ -49,6 +51,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
"spring.cloud.consul.discovery.registerHealthCheck=false",
"management.server.port=4452" },
webEnvironment = RANDOM_PORT)
@ContextConfiguration(initializers = ConsulTestcontainers.class)
public class ConsulAutoServiceRegistrationManagementServiceTests {
@Autowired

View File

@@ -28,7 +28,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import static org.assertj.core.api.Assertions.assertThat;
@@ -41,6 +43,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
@SpringBootTest(classes = ConsulAutoServiceRegistrationNonWebTests.TestConfig.class,
properties = { "spring.application.name=consulNonWebTest", "server.port=32111" },
webEnvironment = NONE)
@ContextConfiguration(initializers = ConsulTestcontainers.class)
public class ConsulAutoServiceRegistrationNonWebTests {
@Autowired

View File

@@ -31,9 +31,11 @@ import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.test.system.OutputCaptureRule;
import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationConfiguration;
import org.springframework.cloud.consul.ConsulAutoConfiguration;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.ContextConfiguration;
import static org.hamcrest.Matchers.isA;
@@ -42,6 +44,7 @@ import static org.hamcrest.Matchers.isA;
* @author Venil Noronha
*/
@DirtiesContext
@ContextConfiguration(initializers = ConsulTestcontainers.class)
public class ConsulAutoServiceRegistrationRetryTests {
@Rule

View File

@@ -32,6 +32,8 @@ import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationConfiguration;
import org.springframework.cloud.consul.ConsulAutoConfiguration;
import org.springframework.cloud.consul.discovery.ConsulDiscoveryProperties;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.util.StringUtils;
@@ -46,6 +48,7 @@ import static org.springframework.cloud.consul.serviceregistry.ConsulAutoRegistr
@RunWith(SpringRunner.class)
@SpringBootTest(properties = { "spring.application.name=myTestService1-FF::something" },
webEnvironment = RANDOM_PORT)
@ContextConfiguration(initializers = ConsulTestcontainers.class)
public class ConsulAutoServiceRegistrationTests {
@Autowired

View File

@@ -33,7 +33,9 @@ import org.springframework.cloud.consul.ConsulAutoConfiguration;
import org.springframework.cloud.consul.discovery.ConsulDiscoveryProperties;
import org.springframework.cloud.consul.discovery.TtlScheduler;
import org.springframework.cloud.consul.support.ConsulHeartbeatAutoConfiguration;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import static org.assertj.core.api.Assertions.assertThat;
@@ -47,10 +49,11 @@ import static org.assertj.core.api.Assertions.assertThat;
"spring.application.name=myConsulServiceRegistryCheckTtlTestService-S",
"spring.cloud.consul.discovery.heartbeat.enabled=true" },
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@ContextConfiguration(initializers = ConsulTestcontainers.class)
public class ConsulServiceRegistryCheckTtlTests {
@LocalServerPort
private int randomServerPort;
private int port;
@Autowired
private ConsulDiscoveryProperties discoveryProperties;
@@ -69,7 +72,7 @@ public class ConsulServiceRegistryCheckTtlTests {
NewService.Check httpCheck = new NewService.Check();
httpCheck.setHttp(
String.format("%s://%s:%s%s", this.discoveryProperties.getScheme(),
this.discoveryProperties.getHostname(), this.randomServerPort,
this.discoveryProperties.getHostname(), this.port,
this.discoveryProperties.getHealthCheckPath()));
httpCheck.setInterval(this.discoveryProperties.getHealthCheckInterval());
NewService httpService = new NewService();

View File

@@ -26,6 +26,7 @@ import org.junit.Test;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.runner.WebApplicationContextRunner;
import org.springframework.cloud.consul.discovery.HeartbeatProperties;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.context.annotation.Configuration;
import static org.assertj.core.api.Assertions.assertThat;
@@ -51,7 +52,7 @@ public class ConsulServiceRegistryDisabledTests {
new WebApplicationContextRunner().withUserConfiguration(TestConfig.class)
.withPropertyValues("spring.application.name=" + testName,
disableProperty + "=false", "server.port=0")
.run(context -> {
.withInitializer(new ConsulTestcontainers()).run(context -> {
assertThat(context).doesNotHaveBean(ConsulServiceRegistry.class);
assertThat(context).doesNotHaveBean(HeartbeatProperties.class);

View File

@@ -32,6 +32,8 @@ import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.consul.discovery.ConsulDiscoveryClient;
import org.springframework.cloud.consul.discovery.ConsulDiscoveryProperties;
import org.springframework.cloud.consul.test.ConsulTestcontainers;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import static org.assertj.core.api.Assertions.assertThat;
@@ -43,6 +45,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
@RunWith(SpringRunner.class)
@SpringBootTest(properties = "spring.cloud.consul.discovery.query-passing=true",
webEnvironment = RANDOM_PORT)
@ContextConfiguration(initializers = ConsulTestcontainers.class)
public class ConsulServiceRegistryTests {
@Autowired(required = false)

View File

@@ -1,24 +0,0 @@
#!/bin/bash
CONSUL_VER="1.7.2"
PLATFORM="amd64"
if [ "$(uname -m)" == aarch64 ]; then
PLATFORM="arm64"
fi
CONSUL_ZIP="consul_${CONSUL_VER}_linux_${PLATFORM}.zip"
IGNORE_CERTS="${IGNORE_CERTS:-no}"
# cleanup
rm "consul_*"
rm "consul"
# install consul
if [[ "${IGNORE_CERTS}" == "no" ]] ; then
echo "Downloading consul with certs verification"
wget "https://releases.hashicorp.com/consul/${CONSUL_VER}/${CONSUL_ZIP}"
else
echo "WARNING... Downloading consul WITHOUT certs verification"
wget "https://releases.hashicorp.com/consul/${CONSUL_VER}/${CONSUL_ZIP}" --no-check-certificate
fi
unzip ${CONSUL_ZIP}
# check
./consul --version

View File

@@ -1,4 +0,0 @@
#!/bin/bash
mkdir /tmp/consul-config
BASEDIR=`dirname $0`/../../..
consul agent -server -bootstrap-expect 1 -advertise 127.0.0.1 -data-dir /tmp/consul -config-dir=/tmp/consul-config -ui-dir ${BASEDIR}/src/test/resources/consul_ui

View File

@@ -1,13 +0,0 @@
#!/bin/bash
ps -ef | grep consul
killall consul
BASEDIR=`dirname $0`/../../..
#${BASEDIR}/consul agent -server -bootstrap-expect 1 -advertise 127.0.0.1 -data-dir /tmp/consul -ui-dir ${BASEDIR}/src/test/resources/consul_ui -config-dir ${BASEDIR}/src/test/resources/consul_config &
${BASEDIR}/consul agent -server -bootstrap-expect 1 -advertise 127.0.0.1 -data-dir /tmp/consul -ui-dir ${BASEDIR}/src/test/resources/consul_ui -config-dir ${BASEDIR}/src/test/resources/empty_config &
# wait for consul to elect a leader before sending acl
sleep 5
# FIXME: 2.2.3 consul acl rework see https://github.com/spring-cloud/spring-cloud-consul/issues/628
#curl -X PUT -d @`dirname $0`/../../test/resources/consul_acl/consul_anonymous_acl.json http://localhost:8500/v1/acl/create?token=2ee647bd-bd69-4118-9f34-b9a6e9e60746
#echo "consul_anonymous_acl installed"
#curl -X PUT -d @`dirname $0`/../../test/resources/consul_acl/consul_discovery_client_acl.json http://localhost:8500/v1/acl/create?token=2ee647bd-bd69-4118-9f34-b9a6e9e60746
#echo "consul_discovery_client_acl installed"