diff --git a/modules/mockserver/build.gradle b/modules/mockserver/build.gradle index a41957cf57a..054944d2eb8 100644 --- a/modules/mockserver/build.gradle +++ b/modules/mockserver/build.gradle @@ -5,6 +5,7 @@ dependencies { testImplementation 'org.mock-server:mockserver-client-java:5.15.0' testImplementation 'org.assertj:assertj-core:3.27.3' + testImplementation 'io.rest-assured:rest-assured:5.5.5' } tasks.japicmp { diff --git a/modules/mockserver/src/test/java/org/testcontainers/containers/MockServerContainerRuleTest.java b/modules/mockserver/src/test/java/org/testcontainers/containers/MockServerContainerRuleTest.java index eaf240f0fe2..066b86b05fd 100644 --- a/modules/mockserver/src/test/java/org/testcontainers/containers/MockServerContainerRuleTest.java +++ b/modules/mockserver/src/test/java/org/testcontainers/containers/MockServerContainerRuleTest.java @@ -5,6 +5,7 @@ import org.mockserver.client.MockServerClient; import org.testcontainers.utility.DockerImageName; +import static io.restassured.RestAssured.given; import static org.assertj.core.api.Assertions.assertThat; import static org.mockserver.model.HttpRequest.request; import static org.mockserver.model.HttpResponse.response; @@ -33,7 +34,9 @@ public void shouldReturnExpectation() throws Exception { // ...a GET request to '/person?name=peter' returns "Peter the person!" - assertThat(SimpleHttpClient.responseFromMockserver(mockServer, "/person?name=peter")) + assertThat( + given().baseUri(mockServer.getEndpoint()).get("/person?name=peter").then().extract().body().asString() + ) .as("Expectation returns expected response body") .contains("Peter the person"); } diff --git a/modules/mockserver/src/test/java/org/testcontainers/containers/MockServerContainerTest.java b/modules/mockserver/src/test/java/org/testcontainers/containers/MockServerContainerTest.java index 3f4a8fef293..a06ea3e7e63 100644 --- a/modules/mockserver/src/test/java/org/testcontainers/containers/MockServerContainerTest.java +++ b/modules/mockserver/src/test/java/org/testcontainers/containers/MockServerContainerTest.java @@ -1,9 +1,16 @@ package org.testcontainers.containers; +import io.restassured.config.RestAssuredConfig; +import io.restassured.config.SSLConfig; +import org.apache.http.conn.ssl.SSLSocketFactory; import org.junit.Test; import org.mockserver.client.MockServerClient; +import org.mockserver.configuration.Configuration; +import org.mockserver.logging.MockServerLogger; +import org.mockserver.socket.tls.KeyStoreFactory; import org.testcontainers.utility.DockerImageName; +import static io.restassured.RestAssured.given; import static org.assertj.core.api.Assertions.assertThat; import static org.mockserver.model.HttpRequest.request; import static org.mockserver.model.HttpResponse.response; @@ -26,7 +33,7 @@ public void shouldCallActualMockserverVersion() throws Exception { client.when(request().withPath("/hello")).respond(response().withBody(expectedBody)); - assertThat(SimpleHttpClient.responseFromMockserver(mockServer, "/hello")) + assertThat(given().when().get(mockServer.getEndpoint() + "/hello").then().extract().body().asString()) .as("MockServer returns correct result") .isEqualTo(expectedBody); } @@ -48,7 +55,7 @@ public void shouldCallMockserverUsingTlsProtocol() throws Exception { client.when(request().withPath("/hello")).respond(response().withBody(expectedBody)); - assertThat(SimpleHttpClient.secureResponseFromMockserver(mockServer, "/hello")) + assertThat(secureResponseFromMockserver(mockServer)) .as("MockServer returns correct result") .isEqualTo(expectedBody); } @@ -73,7 +80,7 @@ public void shouldCallMockserverUsingMutualTlsProtocol() throws Exception { client.when(request().withPath("/hello")).respond(response().withBody(expectedBody)); - assertThat(SimpleHttpClient.secureResponseFromMockserver(mockServer, "/hello")) + assertThat(secureResponseFromMockserver(mockServer)) .as("MockServer returns correct result") .isEqualTo(expectedBody); } @@ -86,4 +93,26 @@ public void newVersionStartsWithDefaultWaitStrategy() { mockServer.start(); } } + + private static String secureResponseFromMockserver(MockServerContainer mockServer) { + return given() + .config( + RestAssuredConfig + .config() + .sslConfig( + SSLConfig + .sslConfig() + .sslSocketFactory( + new SSLSocketFactory( + new KeyStoreFactory(Configuration.configuration(), new MockServerLogger()) + .sslContext() + ) + ) + ) + ) + .baseUri(mockServer.getSecureEndpoint()) + .get("/hello") + .body() + .asString(); + } } diff --git a/modules/mockserver/src/test/java/org/testcontainers/containers/SimpleHttpClient.java b/modules/mockserver/src/test/java/org/testcontainers/containers/SimpleHttpClient.java deleted file mode 100644 index 6c7e75c4622..00000000000 --- a/modules/mockserver/src/test/java/org/testcontainers/containers/SimpleHttpClient.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.testcontainers.containers; - -import lombok.Cleanup; -import org.mockserver.configuration.Configuration; -import org.mockserver.logging.MockServerLogger; -import org.mockserver.socket.tls.KeyStoreFactory; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.net.URL; -import java.net.URLConnection; - -import javax.net.ssl.HttpsURLConnection; - -public class SimpleHttpClient { - - public static String responseFromMockserver(MockServerContainer mockServer, String path) throws IOException { - URLConnection urlConnection = new URL(mockServer.getEndpoint() + path).openConnection(); - @Cleanup - BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream())); - return reader.readLine(); - } - - public static String secureResponseFromMockserver(MockServerContainer mockServer, String path) throws IOException { - HttpsURLConnection httpUrlConnection = (HttpsURLConnection) new URL(mockServer.getSecureEndpoint() + path) - .openConnection(); - try { - httpUrlConnection.setSSLSocketFactory( - new KeyStoreFactory(Configuration.configuration(), new MockServerLogger()) - .sslContext() - .getSocketFactory() - ); - @Cleanup - BufferedReader reader = new BufferedReader(new InputStreamReader(httpUrlConnection.getInputStream())); - return reader.readLine(); - } finally { - httpUrlConnection.disconnect(); - } - } -}