Skip to content

Commit 4cda084

Browse files
authored
Add MockServer container implementation under org.testcontainers.mockserver (#11084)
1 parent 565e73c commit 4cda084

File tree

5 files changed

+63
-62
lines changed

5 files changed

+63
-62
lines changed

docs/modules/mockserver.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@ Mock Server can be used to mock HTTP services by matching requests against user-
77
The following example shows how to start Mockserver.
88

99
<!--codeinclude-->
10-
[Creating a MockServer container](../../modules/mockserver/src/test/java/org/testcontainers/containers/MockServerContainerRuleTest.java) inside_block:creatingProxy
10+
[Creating a MockServer container](../../modules/mockserver/src/test/java/org/testcontainers/mockserver/MockServerContainerTest.java) inside_block:creatingProxy
1111
<!--/codeinclude-->
1212

1313
And how to set a simple expectation using the Java MockServerClient.
1414

1515
<!--codeinclude-->
16-
[Setting a simple expectation](../../modules/mockserver/src/test/java/org/testcontainers/containers/MockServerContainerRuleTest.java) inside_block:testSimpleExpectation
16+
[Setting a simple expectation](../../modules/mockserver/src/test/java/org/testcontainers/mockserver/MockServerContainerTest.java) inside_block:testSimpleExpectation
1717
<!--/codeinclude-->
1818

1919
## Adding this module to your project dependencies

modules/mockserver/src/main/java/org/testcontainers/containers/MockServerContainer.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,11 @@
44
import org.testcontainers.containers.wait.strategy.Wait;
55
import org.testcontainers.utility.DockerImageName;
66

7+
/**
8+
* @deprecated use {@link org.testcontainers.mockserver.MockServerContainer} instead.
9+
*/
710
@Slf4j
11+
@Deprecated
812
public class MockServerContainer extends GenericContainer<MockServerContainer> {
913

1014
private static final DockerImageName DEFAULT_IMAGE_NAME = DockerImageName.parse("jamesdbloom/mockserver");
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package org.testcontainers.mockserver;
2+
3+
import lombok.extern.slf4j.Slf4j;
4+
import org.testcontainers.containers.GenericContainer;
5+
import org.testcontainers.containers.wait.strategy.Wait;
6+
import org.testcontainers.utility.DockerImageName;
7+
8+
@Slf4j
9+
public class MockServerContainer extends GenericContainer<MockServerContainer> {
10+
11+
private static final DockerImageName DEFAULT_IMAGE_NAME = DockerImageName.parse("jamesdbloom/mockserver");
12+
13+
private static final String DEFAULT_TAG = "mockserver-5.5.4";
14+
15+
@Deprecated
16+
public static final String VERSION = DEFAULT_TAG;
17+
18+
public static final int PORT = 1080;
19+
20+
/**
21+
* @deprecated use {@link #MockServerContainer(DockerImageName)} instead
22+
*/
23+
@Deprecated
24+
public MockServerContainer(String version) {
25+
this(DEFAULT_IMAGE_NAME.withTag("mockserver-" + version));
26+
}
27+
28+
public MockServerContainer(DockerImageName dockerImageName) {
29+
super(dockerImageName);
30+
dockerImageName.assertCompatibleWith(DEFAULT_IMAGE_NAME, DockerImageName.parse("mockserver/mockserver"));
31+
32+
waitingFor(Wait.forLogMessage(".*started on port: " + PORT + ".*", 1));
33+
34+
withCommand("-serverPort " + PORT);
35+
addExposedPorts(PORT);
36+
}
37+
38+
public String getEndpoint() {
39+
return String.format("http://%s:%d", getHost(), getMappedPort(PORT));
40+
}
41+
42+
public String getSecureEndpoint() {
43+
return String.format("https://%s:%d", getHost(), getMappedPort(PORT));
44+
}
45+
46+
public Integer getServerPort() {
47+
return getMappedPort(PORT);
48+
}
49+
}

modules/mockserver/src/test/java/org/testcontainers/containers/MockServerContainerRuleTest.java

Lines changed: 0 additions & 55 deletions
This file was deleted.

modules/mockserver/src/test/java/org/testcontainers/containers/MockServerContainerTest.java renamed to modules/mockserver/src/test/java/org/testcontainers/mockserver/MockServerContainerTest.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.testcontainers.containers;
1+
package org.testcontainers.mockserver;
22

33
import io.restassured.config.RestAssuredConfig;
44
import io.restassured.config.SSLConfig;
@@ -22,8 +22,11 @@ class MockServerContainerTest {
2222
.withTag("mockserver-" + MockServerClient.class.getPackage().getImplementationVersion());
2323

2424
@Test
25-
void shouldCallActualMockserverVersion() throws Exception {
26-
try (MockServerContainer mockServer = new MockServerContainer(MOCKSERVER_IMAGE)) {
25+
void shouldCallActualMockserverVersion() {
26+
try ( // creatingProxy {
27+
MockServerContainer mockServer = new MockServerContainer(MOCKSERVER_IMAGE)
28+
// }
29+
) {
2730
mockServer.start();
2831

2932
String expectedBody = "Hello World!";
@@ -41,7 +44,7 @@ void shouldCallActualMockserverVersion() throws Exception {
4144
}
4245

4346
@Test
44-
void shouldCallMockserverUsingTlsProtocol() throws Exception {
47+
void shouldCallMockserverUsingTlsProtocol() {
4548
try (MockServerContainer mockServer = new MockServerContainer(MOCKSERVER_IMAGE)) {
4649
mockServer.start();
4750

@@ -63,7 +66,7 @@ void shouldCallMockserverUsingTlsProtocol() throws Exception {
6366
}
6467

6568
@Test
66-
void shouldCallMockserverUsingMutualTlsProtocol() throws Exception {
69+
void shouldCallMockserverUsingMutualTlsProtocol() {
6770
try (
6871
MockServerContainer mockServer = new MockServerContainer(MOCKSERVER_IMAGE)
6972
.withEnv("MOCKSERVER_TLS_MUTUAL_AUTHENTICATION_REQUIRED", "true")

0 commit comments

Comments
 (0)