Skip to content

Commit 92bbcb9

Browse files
committed
wiremock#33 Align methods of WireMockContainer and WireMockServer
1 parent f23877f commit 92bbcb9

File tree

7 files changed

+53
-19
lines changed

7 files changed

+53
-19
lines changed

README.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public class WireMockContainerJUnit5Test {
6161
public void helloWorld() throws Exception {
6262
final HttpClient client = HttpClient.newBuilder().build();
6363
final HttpRequest request = HttpRequest.newBuilder()
64-
.uri(wiremockServer.getRequestURI("hello"))
64+
.uri(URI.create(wiremockServer.url("/hello")))
6565
.timeout(Duration.ofSeconds(10))
6666
.header("Content-Type", "application/json")
6767
.GET().build();
@@ -82,6 +82,7 @@ import org.wiremock.integrations.testcontainers.WireMockContainer;
8282
import org.junit.Rule;
8383
import org.junit.Test;
8484

85+
import java.net.URI;
8586
import java.net.http.HttpClient;
8687
import java.net.http.HttpRequest;
8788
import java.net.http.HttpResponse;
@@ -97,7 +98,7 @@ public class WireMockContainerTest {
9798
public void helloWorld() throws Exception {
9899
final HttpClient client = HttpClient.newBuilder().build();
99100
final HttpRequest request = HttpRequest.newBuilder()
100-
.uri(wiremockServer.getRequestURI("hello"))
101+
.uri(URI.create(wiremockServer.url("/hello")))
101102
.timeout(Duration.ofSeconds(10))
102103
.header("Content-Type", "application/json")
103104
.GET().build();
@@ -199,7 +200,7 @@ public class WireMockContainerExtensionJUnit5Test {
199200
public void testJSONBodyTransformer() throws Exception {
200201
final HttpClient client = HttpClient.newBuilder().build();
201202
final HttpRequest request = HttpRequest.newBuilder()
202-
.uri(wiremockServer.getRequestURI("json-body-transformer"))
203+
.uri(URI.create(wiremockServer.url("/json-body-transformer")))
203204
.timeout(Duration.ofSeconds(10))
204205
.header("Content-Type", "application/json")
205206
.POST(HttpRequest.BodyPublishers.ofString("{\"name\":\"John Doe\"}")).build();
@@ -226,7 +227,7 @@ public class WireMockContainerExtensionTest {
226227
public void testJSONBodyTransformer() throws Exception {
227228
final HttpClient client = HttpClient.newBuilder().build();
228229
final HttpRequest request = HttpRequest.newBuilder()
229-
.uri(wiremockServer.getRequestURI("json-body-transformer"))
230+
.uri(URI.create(wiremockServer.url("/json-body-transformer")))
230231
.timeout(Duration.ofSeconds(10))
231232
.header("Content-Type", "application/json")
232233
.POST(HttpRequest.BodyPublishers.ofString("{\"name\":\"John Doe\"}")).build();

pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,11 @@
7272
<artifactId>junit-jupiter-engine</artifactId>
7373
<scope>test</scope>
7474
</dependency>
75+
<dependency>
76+
<groupId>org.junit.jupiter</groupId>
77+
<artifactId>junit-jupiter-params</artifactId>
78+
<scope>test</scope>
79+
</dependency>
7580
<dependency>
7681
<groupId>org.junit.vintage</groupId>
7782
<artifactId>junit-vintage-engine</artifactId>

src/main/java/org/wiremock/integrations/testcontainers/WireMockContainer.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@
1717

1818
import java.io.File;
1919
import java.io.IOException;
20-
import java.net.URI;
21-
import java.net.URISyntaxException;
2220
import java.net.URL;
2321
import java.nio.charset.StandardCharsets;
2422
import java.nio.file.Files;
@@ -184,15 +182,18 @@ public WireMockContainer withExtension(String id, String className) {
184182
return withExtension(id, Collections.singleton(className), Collections.emptyList());
185183
}
186184

187-
public String getEndpoint() {
188-
return String.format("http://%s:%d", getHost(), getMappedPort(PORT));
185+
public String baseUrl() {
186+
return String.format("http://%s:%d", getHost(), port());
189187
}
190188

191-
public URI getRequestURI(String relativePath) throws URISyntaxException {
192-
return new URI(getEndpoint() + "/" + relativePath);
189+
public String url(String path) {
190+
if (!path.startsWith("/")) {
191+
path = "/" + path;
192+
}
193+
return String.format("%s%s", baseUrl(), path);
193194
}
194195

195-
public Integer getServerPort() {
196+
public int port() {
196197
return getMappedPort(PORT);
197198
}
198199

src/test/java/org/wiremock/integrations/testcontainers/WireMockContainerExtensionTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import org.slf4j.LoggerFactory;
2323
import org.testcontainers.containers.output.Slf4jLogConsumer;
2424

25+
import java.net.URI;
2526
import java.net.http.HttpClient;
2627
import java.net.http.HttpRequest;
2728
import java.net.http.HttpResponse;
@@ -56,7 +57,7 @@ public void before() {
5657
public void testJSONBodyTransformer() throws Exception {
5758
final HttpClient client = HttpClient.newBuilder().build();
5859
final HttpRequest request = HttpRequest.newBuilder()
59-
.uri(wiremockServer.getRequestURI("json-body-transformer"))
60+
.uri(URI.create(wiremockServer.url("/json-body-transformer")))
6061
.timeout(Duration.ofSeconds(10))
6162
.header("Content-Type", "application/json")
6263
.POST(HttpRequest.BodyPublishers.ofString("{\"name\":\"John Doe\"}")).build();

src/test/java/org/wiremock/integrations/testcontainers/WireMockContainerExtensionsCombinationTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import org.slf4j.LoggerFactory;
2323
import org.testcontainers.containers.output.Slf4jLogConsumer;
2424

25+
import java.net.URI;
2526
import java.net.http.HttpClient;
2627
import java.net.http.HttpRequest;
2728
import java.net.http.HttpResponse;
@@ -58,7 +59,7 @@ public void before() {
5859
public void testJSONBodyTransformer() throws Exception {
5960
final HttpClient client = HttpClient.newBuilder().build();
6061
final HttpRequest request = HttpRequest.newBuilder()
61-
.uri(wiremockServer.getRequestURI("json-body-transformer"))
62+
.uri(URI.create(wiremockServer.url("/json-body-transformer")))
6263
.timeout(Duration.ofSeconds(10))
6364
.header("Content-Type", "application/json")
6465
.POST(HttpRequest.BodyPublishers.ofString("{\"name\":\"John Doe\"}")).build();

src/test/java/org/wiremock/integrations/testcontainers/WireMockContainerJUnit5Test.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,14 @@
22

33
import static org.assertj.core.api.Assertions.assertThat;
44

5+
import java.net.URI;
56
import java.net.http.HttpClient;
67
import java.net.http.HttpRequest;
78
import java.net.http.HttpResponse;
89
import java.time.Duration;
910
import org.junit.jupiter.api.Test;
11+
import org.junit.jupiter.params.ParameterizedTest;
12+
import org.junit.jupiter.params.provider.ValueSource;
1013
import org.testcontainers.junit.jupiter.Container;
1114
import org.testcontainers.junit.jupiter.Testcontainers;
1215

@@ -20,11 +23,16 @@ public class WireMockContainerJUnit5Test {
2023
.withFileFromResource("hello-world-resource-response.xml", WireMockContainerTest.class,
2124
"hello-world-resource-response.xml");
2225

23-
@Test
24-
public void helloWorld() throws Exception {
26+
27+
@ParameterizedTest
28+
@ValueSource(strings = {
29+
"hello",
30+
"/hello"
31+
})
32+
public void helloWorld(String path) throws Exception {
2533
final HttpClient client = HttpClient.newBuilder().build();
2634
final HttpRequest request = HttpRequest.newBuilder()
27-
.uri(wiremockServer.getRequestURI("hello"))
35+
.uri(URI.create(wiremockServer.url(path)))
2836
.timeout(Duration.ofSeconds(10))
2937
.header("Content-Type", "application/json")
3038
.GET().build();
@@ -43,7 +51,7 @@ public void helloWorldFromFile() throws Exception {
4351
.build();
4452

4553
HttpRequest request = HttpRequest.newBuilder()
46-
.uri(wiremockServer.getRequestURI("hello-from-file"))
54+
.uri(URI.create(wiremockServer.url("/hello-from-file")))
4755
.timeout(Duration.ofSeconds(10))
4856
.header("Content-Type", "application/json")
4957
.GET()

src/test/java/org/wiremock/integrations/testcontainers/WireMockContainerTest.java

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import org.junit.Rule;
1919
import org.junit.Test;
2020

21+
import java.net.URI;
2122
import java.net.http.HttpClient;
2223
import java.net.http.HttpRequest;
2324
import java.net.http.HttpResponse;
@@ -37,7 +38,23 @@ public class WireMockContainerTest {
3738
public void helloWorld() throws Exception {
3839
final HttpClient client = HttpClient.newBuilder().build();
3940
final HttpRequest request = HttpRequest.newBuilder()
40-
.uri(wiremockServer.getRequestURI("hello"))
41+
.uri(URI.create(wiremockServer.url("/hello")))
42+
.timeout(Duration.ofSeconds(10))
43+
.header("Content-Type", "application/json")
44+
.GET().build();
45+
46+
final HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
47+
48+
assertThat(response.body())
49+
.as("Wrong response body")
50+
.contains("Hello, world!");
51+
}
52+
53+
@Test
54+
public void helloWorldWithoutLeadingSlashInPath() throws Exception {
55+
final HttpClient client = HttpClient.newBuilder().build();
56+
final HttpRequest request = HttpRequest.newBuilder()
57+
.uri(URI.create(wiremockServer.url("hello")))
4158
.timeout(Duration.ofSeconds(10))
4259
.header("Content-Type", "application/json")
4360
.GET().build();
@@ -53,7 +70,7 @@ public void helloWorld() throws Exception {
5370
public void helloWorldFromFile() throws Exception {
5471
final HttpClient client = HttpClient.newBuilder().build();
5572
final HttpRequest request = HttpRequest.newBuilder()
56-
.uri(wiremockServer.getRequestURI("hello-from-file"))
73+
.uri(URI.create(wiremockServer.url("/hello-from-file")))
5774
.timeout(Duration.ofSeconds(10))
5875
.header("Content-Type", "application/json")
5976
.GET().build();

0 commit comments

Comments
 (0)