diff --git a/pom.xml b/pom.xml
index a83b806f..19028baa 100644
--- a/pom.xml
+++ b/pom.xml
@@ -71,7 +71,6 @@
3.5.37
1.6
2.4.12
- 3.0.2
1.1-groovy-2.4
@@ -123,13 +122,6 @@
${groovy.version}
-
- io.rest-assured
- rest-assured
- ${restassured.version}
- test
-
-
org.spockframework
spock-spring
diff --git a/spring-cloud-kubernetes-config/pom.xml b/spring-cloud-kubernetes-config/pom.xml
index f16f512c..7fa46484 100644
--- a/spring-cloud-kubernetes-config/pom.xml
+++ b/spring-cloud-kubernetes-config/pom.xml
@@ -162,8 +162,8 @@
test
- io.rest-assured
- rest-assured
+ org.springframework.boot
+ spring-boot-starter-webflux
test
diff --git a/spring-cloud-kubernetes-config/src/test/java/org/springframework/cloud/kubernetes/config/ConfigMapsSpringBootTest.java b/spring-cloud-kubernetes-config/src/test/java/org/springframework/cloud/kubernetes/config/ConfigMapsSpringBootTest.java
index 3b8fdd9a..d46c9b9d 100644
--- a/spring-cloud-kubernetes-config/src/test/java/org/springframework/cloud/kubernetes/config/ConfigMapsSpringBootTest.java
+++ b/spring-cloud-kubernetes-config/src/test/java/org/springframework/cloud/kubernetes/config/ConfigMapsSpringBootTest.java
@@ -17,28 +17,23 @@
package org.springframework.cloud.kubernetes.config;
-import java.util.HashMap;
-
import io.fabric8.kubernetes.api.model.ConfigMap;
import io.fabric8.kubernetes.api.model.ConfigMapBuilder;
import io.fabric8.kubernetes.client.Config;
import io.fabric8.kubernetes.client.KubernetesClient;
import io.fabric8.kubernetes.client.server.mock.KubernetesServer;
-import io.restassured.RestAssured;
-import org.junit.Before;
+import java.util.HashMap;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
import org.junit.runner.RunWith;
-
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.kubernetes.config.example.App;
import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.test.web.reactive.server.WebTestClient;
-import static io.restassured.RestAssured.when;
-import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertEquals;
/**
@@ -48,6 +43,7 @@ import static org.junit.Assert.assertEquals;
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = App.class, properties = {
"spring.application.name=configmap-example",
"spring.cloud.kubernetes.reload.enabled=false" })
+@AutoConfigureWebTestClient
public class ConfigMapsSpringBootTest {
@ClassRule
@@ -56,12 +52,12 @@ public class ConfigMapsSpringBootTest {
private static KubernetesClient mockClient;
@Autowired(required = false)
- Config config;
+ private Config config;
private static final String APPLICATION_NAME = "configmap-example";
- @Value("${local.server.port}")
- private int port;
+ @Autowired
+ private WebTestClient webClient;
@BeforeClass
public static void setUpBeforeClass() {
@@ -84,23 +80,12 @@ public class ConfigMapsSpringBootTest {
.always();
}
- @Before
- public void setUp() {
- RestAssured.baseURI = String.format("http://localhost:%d/api/greeting", port);
- }
-
@Test
public void testConfig() {
assertEquals(config.getMasterUrl(), mockClient.getConfiguration().getMasterUrl());
assertEquals(config.getNamespace(), mockClient.getNamespace());
}
- @Test
- public void testGreetingEndpoint() {
- when().get().then().statusCode(200).body("content",
- is("Hello ConfigMap, World!"));
- }
-
@Test
public void testConfigMap() {
ConfigMap configmap = mockClient.configMaps().inNamespace("test")
@@ -109,4 +94,10 @@ public class ConfigMapsSpringBootTest {
assertEquals(keys.get("bean.greeting"), "Hello ConfigMap, %s!");
}
+ @Test
+ public void testGreetingEndpoint() {
+ this.webClient.get().uri("/api/greeting").exchange().expectStatus().isOk()
+ .expectBody().jsonPath("content").isEqualTo("Hello ConfigMap, World!");
+ }
+
}
diff --git a/spring-cloud-kubernetes-config/src/test/java/org/springframework/cloud/kubernetes/config/ConfigMapsWithProfilesNoActiveProfileSpringBootTest.java b/spring-cloud-kubernetes-config/src/test/java/org/springframework/cloud/kubernetes/config/ConfigMapsWithProfilesNoActiveProfileSpringBootTest.java
index 6844f2da..dbae4f36 100644
--- a/spring-cloud-kubernetes-config/src/test/java/org/springframework/cloud/kubernetes/config/ConfigMapsWithProfilesNoActiveProfileSpringBootTest.java
+++ b/spring-cloud-kubernetes-config/src/test/java/org/springframework/cloud/kubernetes/config/ConfigMapsWithProfilesNoActiveProfileSpringBootTest.java
@@ -17,26 +17,22 @@
package org.springframework.cloud.kubernetes.config;
-import java.util.HashMap;
-
import io.fabric8.kubernetes.api.model.ConfigMapBuilder;
import io.fabric8.kubernetes.client.Config;
import io.fabric8.kubernetes.client.KubernetesClient;
import io.fabric8.kubernetes.client.server.mock.KubernetesServer;
-import io.restassured.RestAssured;
+import java.util.HashMap;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
import org.junit.runner.RunWith;
-
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.kubernetes.config.example.App;
import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.test.web.reactive.server.WebTestClient;
-import static io.restassured.RestAssured.when;
-import static org.hamcrest.core.Is.is;
import static org.springframework.cloud.kubernetes.config.ConfigMapTestUtil.readResourceFile;
/**
@@ -46,6 +42,7 @@ import static org.springframework.cloud.kubernetes.config.ConfigMapTestUtil.read
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = App.class, properties = {
"spring.application.name=configmap-with-profile-no-active-profiles-example",
"spring.cloud.kubernetes.reload.enabled=false" })
+@AutoConfigureWebTestClient
public class ConfigMapsWithProfilesNoActiveProfileSpringBootTest {
@ClassRule
@@ -53,13 +50,10 @@ public class ConfigMapsWithProfilesNoActiveProfileSpringBootTest {
private static KubernetesClient mockClient;
- @Autowired(required = false)
- Config config;
-
private static final String APPLICATION_NAME = "configmap-with-profile-no-active-profiles-example";
- @Value("${local.server.port}")
- private int port;
+ @Autowired
+ private WebTestClient webClient;
@BeforeClass
public static void setUpBeforeClass() {
@@ -84,16 +78,15 @@ public class ConfigMapsWithProfilesNoActiveProfileSpringBootTest {
@Test
public void testGreetingEndpoint() {
- RestAssured.baseURI = String.format("http://localhost:%d/api/greeting", port);
- when().get().then().statusCode(200).body("content",
- is("Hello ConfigMap default, World!"));
+ this.webClient.get().uri("/api/greeting").exchange().expectStatus().isOk()
+ .expectBody().jsonPath("content").isEqualTo("Hello ConfigMap default, World!");
}
@Test
public void testFarewellEndpoint() {
- RestAssured.baseURI = String.format("http://localhost:%d/api/farewell", port);
- when().get().then().statusCode(200).body("content",
- is("Goodbye ConfigMap default, World!"));
+ this.webClient.get().uri("/api/farewell").exchange().expectStatus().isOk()
+ .expectBody().jsonPath("content")
+ .isEqualTo("Goodbye ConfigMap default, World!");
}
}
diff --git a/spring-cloud-kubernetes-config/src/test/java/org/springframework/cloud/kubernetes/config/ConfigMapsWithProfilesSpringBootTest.java b/spring-cloud-kubernetes-config/src/test/java/org/springframework/cloud/kubernetes/config/ConfigMapsWithProfilesSpringBootTest.java
index 53a5ac83..eef254a8 100644
--- a/spring-cloud-kubernetes-config/src/test/java/org/springframework/cloud/kubernetes/config/ConfigMapsWithProfilesSpringBootTest.java
+++ b/spring-cloud-kubernetes-config/src/test/java/org/springframework/cloud/kubernetes/config/ConfigMapsWithProfilesSpringBootTest.java
@@ -17,27 +17,23 @@
package org.springframework.cloud.kubernetes.config;
-import java.util.HashMap;
-
import io.fabric8.kubernetes.api.model.ConfigMapBuilder;
import io.fabric8.kubernetes.client.Config;
import io.fabric8.kubernetes.client.KubernetesClient;
import io.fabric8.kubernetes.client.server.mock.KubernetesServer;
-import io.restassured.RestAssured;
+import java.util.HashMap;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
import org.junit.runner.RunWith;
-
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.kubernetes.config.example.App;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.test.web.reactive.server.WebTestClient;
-import static io.restassured.RestAssured.when;
-import static org.hamcrest.core.Is.is;
import static org.springframework.cloud.kubernetes.config.ConfigMapTestUtil.readResourceFile;
/**
@@ -48,6 +44,7 @@ import static org.springframework.cloud.kubernetes.config.ConfigMapTestUtil.read
"spring.application.name=configmap-with-profile-example",
"spring.cloud.kubernetes.reload.enabled=false" })
@ActiveProfiles("development")
+@AutoConfigureWebTestClient
public class ConfigMapsWithProfilesSpringBootTest {
@ClassRule
@@ -60,8 +57,8 @@ public class ConfigMapsWithProfilesSpringBootTest {
private static final String APPLICATION_NAME = "configmap-with-profile-example";
- @Value("${local.server.port}")
- private int port;
+ @Autowired
+ private WebTestClient webClient;
@BeforeClass
public static void setUpBeforeClass() {
@@ -86,15 +83,15 @@ public class ConfigMapsWithProfilesSpringBootTest {
@Test
public void testGreetingEndpoint() {
- RestAssured.baseURI = String.format("http://localhost:%d/api/greeting", port);
- when().get().then().statusCode(200).body("content",
- is("Hello ConfigMap dev, World!"));
+ this.webClient.get().uri("/api/greeting").exchange().expectStatus().isOk()
+ .expectBody().jsonPath("content")
+ .isEqualTo("Hello ConfigMap dev, World!");
}
@Test
public void testFarewellEndpoint() {
- RestAssured.baseURI = String.format("http://localhost:%d/api/farewell", port);
- when().get().then().statusCode(200).body("content",
- is("Goodbye ConfigMap default, World!"));
+ this.webClient.get().uri("/api/farewell").exchange().expectStatus().isOk()
+ .expectBody().jsonPath("content")
+ .isEqualTo("Goodbye ConfigMap default, World!");
}
}
diff --git a/spring-cloud-kubernetes-config/src/test/java/org/springframework/cloud/kubernetes/config/ConfigMapsWithoutProfilesSpringBootTest.java b/spring-cloud-kubernetes-config/src/test/java/org/springframework/cloud/kubernetes/config/ConfigMapsWithoutProfilesSpringBootTest.java
index 98b73afd..d4265174 100644
--- a/spring-cloud-kubernetes-config/src/test/java/org/springframework/cloud/kubernetes/config/ConfigMapsWithoutProfilesSpringBootTest.java
+++ b/spring-cloud-kubernetes-config/src/test/java/org/springframework/cloud/kubernetes/config/ConfigMapsWithoutProfilesSpringBootTest.java
@@ -17,26 +17,24 @@
package org.springframework.cloud.kubernetes.config;
-import static io.restassured.RestAssured.when;
-import static org.hamcrest.core.Is.is;
-import static org.springframework.cloud.kubernetes.config.ConfigMapTestUtil.readResourceFile;
-
import io.fabric8.kubernetes.api.model.ConfigMapBuilder;
import io.fabric8.kubernetes.client.Config;
import io.fabric8.kubernetes.client.KubernetesClient;
import io.fabric8.kubernetes.client.server.mock.KubernetesServer;
-import io.restassured.RestAssured;
import java.util.HashMap;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.kubernetes.config.example.App;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.test.web.reactive.server.WebTestClient;
+
+import static org.springframework.cloud.kubernetes.config.ConfigMapTestUtil.readResourceFile;
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
@@ -45,6 +43,7 @@ import org.springframework.test.context.junit4.SpringRunner;
"spring.cloud.kubernetes.reload.enabled=false"}
)
@ActiveProfiles("development")
+@AutoConfigureWebTestClient
public class ConfigMapsWithoutProfilesSpringBootTest {
@ClassRule
@@ -52,13 +51,10 @@ public class ConfigMapsWithoutProfilesSpringBootTest {
private static KubernetesClient mockClient;
- @Autowired(required = false)
- Config config;
-
private static final String APPLICATION_NAME = "configmap-without-profile-example";
- @Value("${local.server.port}")
- private int port;
+ @Autowired
+ private WebTestClient webClient;
@BeforeClass
public static void setUpBeforeClass() {
@@ -82,19 +78,14 @@ public class ConfigMapsWithoutProfilesSpringBootTest {
@Test
public void testGreetingEndpoint() {
- RestAssured.baseURI = String.format("http://localhost:%d/api/greeting", port);
- when().get()
- .then()
- .statusCode(200)
- .body("content", is("Hello ConfigMap, World!"));
+ this.webClient.get().uri("/api/greeting").exchange().expectStatus().isOk()
+ .expectBody().jsonPath("content").isEqualTo("Hello ConfigMap, World!");
}
@Test
public void testFarewellEndpoint() {
- RestAssured.baseURI = String.format("http://localhost:%d/api/farewell", port);
- when().get()
- .then()
- .statusCode(200)
- .body("content", is("Goodbye ConfigMap, World!"));
+ this.webClient.get().uri("/api/farewell").exchange().expectStatus().isOk()
+ .expectBody().jsonPath("content")
+ .isEqualTo("Goodbye ConfigMap, World!");
}
}
diff --git a/spring-cloud-kubernetes-config/src/test/java/org/springframework/cloud/kubernetes/config/HealthIndicatorTest.java b/spring-cloud-kubernetes-config/src/test/java/org/springframework/cloud/kubernetes/config/HealthIndicatorTest.java
index f7ef025f..b4e2fb6b 100644
--- a/spring-cloud-kubernetes-config/src/test/java/org/springframework/cloud/kubernetes/config/HealthIndicatorTest.java
+++ b/spring-cloud-kubernetes-config/src/test/java/org/springframework/cloud/kubernetes/config/HealthIndicatorTest.java
@@ -1,20 +1,22 @@
package org.springframework.cloud.kubernetes.config;
-import static io.restassured.RestAssured.given;
-import static org.hamcrest.core.StringContains.containsString;
-
import io.fabric8.kubernetes.client.Config;
import io.fabric8.kubernetes.client.KubernetesClient;
import io.fabric8.kubernetes.server.mock.KubernetesServer;
-import io.restassured.RestAssured;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
import org.junit.runner.RunWith;
+
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.kubernetes.config.example.App;
+import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.test.web.reactive.server.WebTestClient;
+
+import static org.hamcrest.Matchers.containsString;
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = App.class,
@@ -31,6 +33,8 @@ public class HealthIndicatorTest {
@Value("${local.server.port}")
private int port;
+ @Autowired
+ private WebTestClient webClient;
@BeforeClass
public static void setUpBeforeClass() {
@@ -46,13 +50,12 @@ public class HealthIndicatorTest {
@Test
public void healthEndpointShouldContainKubernetes() {
- RestAssured.baseURI = String.format("http://localhost:%d/actuator/health", port);
- given()
- .contentType("application/json")
- .get()
- .then()
- .statusCode(200)
- .body(containsString("kubernetes"));
+ webClient.get()
+ .uri("http://localhost:{port}/actuator/health", port)
+ .accept(MediaType.APPLICATION_JSON)
+ .exchange()
+ .expectStatus().isOk()
+ .expectBody(String.class).value(containsString("kubernetes"));
}
diff --git a/spring-cloud-kubernetes-config/src/test/java/org/springframework/cloud/kubernetes/config/MultipleConfigMapsSpringBootTest.java b/spring-cloud-kubernetes-config/src/test/java/org/springframework/cloud/kubernetes/config/MultipleConfigMapsSpringBootTest.java
index 68d5b6f0..dba81c72 100644
--- a/spring-cloud-kubernetes-config/src/test/java/org/springframework/cloud/kubernetes/config/MultipleConfigMapsSpringBootTest.java
+++ b/spring-cloud-kubernetes-config/src/test/java/org/springframework/cloud/kubernetes/config/MultipleConfigMapsSpringBootTest.java
@@ -17,25 +17,22 @@
package org.springframework.cloud.kubernetes.config;
-import static io.restassured.RestAssured.when;
-import static org.hamcrest.core.Is.is;
-
import io.fabric8.kubernetes.api.model.ConfigMapBuilder;
import io.fabric8.kubernetes.client.Config;
import io.fabric8.kubernetes.client.KubernetesClient;
import io.fabric8.kubernetes.client.server.mock.KubernetesServer;
-import io.restassured.RestAssured;
import java.util.HashMap;
import java.util.Map;
-import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.springframework.beans.factory.annotation.Value;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.kubernetes.config.example2.ExampleApp;
import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.test.web.reactive.server.WebTestClient;
/**
* @author Charles Moulliard
@@ -43,6 +40,7 @@ import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = ExampleApp.class,
properties = {"spring.cloud.bootstrap.name=multiplecms"})
+@AutoConfigureWebTestClient
public class MultipleConfigMapsSpringBootTest {
@ClassRule
@@ -50,9 +48,8 @@ public class MultipleConfigMapsSpringBootTest {
private static KubernetesClient mockClient;
-
- @Value("${local.server.port}")
- private int port;
+ @Autowired
+ private WebTestClient webClient;
@BeforeClass
public static void setUpBeforeClass() {
@@ -109,12 +106,6 @@ public class MultipleConfigMapsSpringBootTest {
.always();
}
-
- @Before
- public void setUp() {
- RestAssured.baseURI = String.format("http://localhost:%d/", port);
- }
-
//the last confimap defined in 'multiplecms.yml' has the highest priority, so
//the common property defined in all configmaps is taken from the last one defined
@Test
@@ -138,10 +129,9 @@ public class MultipleConfigMapsSpringBootTest {
}
private void assertResponse(String path, String expectedMessage) {
- when().get(path)
- .then()
- .statusCode(200)
- .body("message", is(expectedMessage));
+ this.webClient.get().uri(path).exchange().expectStatus().isOk()
+ .expectBody().jsonPath("message")
+ .isEqualTo(expectedMessage);
}
}