Skip to content

Commit

Permalink
Mockserver module (#696)
Browse files Browse the repository at this point in the history
* Add MockServer module

* CHANGELOG.md

* remove delegate
  • Loading branch information
bsideup committed May 16, 2018
1 parent ca2dd7a commit 0a357ff
Show file tree
Hide file tree
Showing 4 changed files with 81 additions and 0 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ All notable changes to this project will be documented in this file.

### Changed
- Added InfluxDB module ([\#686](https://github.com/testcontainers/testcontainers-java/pull/686))
- Added MockServer module ([\#696](https://github.com/testcontainers/testcontainers-java/pull/696))

## [1.7.2] - 2018-04-30

Expand Down
8 changes: 8 additions & 0 deletions modules/mockserver/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
description = "Testcontainers :: MockServer"

dependencies {
compile project(':testcontainers')

compileOnly 'org.mock-server:mockserver-client-java:5.3.0'
testCompile 'org.mock-server:mockserver-client-java:5.3.0'
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package org.testcontainers.containers;

import com.github.dockerjava.api.command.InspectContainerResponse;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import org.mockserver.client.server.MockServerClient;

@Slf4j
public class MockServerContainer extends GenericContainer<MockServerContainer> {

public static final String VERSION = "5.3.0";

public static final int PORT = 80;

@Getter
private MockServerClient client;

public MockServerContainer() {
this(VERSION);
}

public MockServerContainer(String version) {
super("jamesdbloom/mockserver:mockserver-" + version);
withCommand("/opt/mockserver/run_mockserver.sh -logLevel INFO -serverPort " + PORT);
addExposedPorts(PORT);
}

@Override
protected void containerIsStarted(InspectContainerResponse containerInfo) {
super.containerIsStarted(containerInfo);

client = new MockServerClient(getContainerIpAddress(), getMappedPort(PORT));
}

public String getEndpoint() {
return String.format("http://%s:%d", getContainerIpAddress(), getMappedPort(PORT));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package org.testcontainers.containers;

import lombok.Cleanup;
import org.junit.ClassRule;
import org.junit.Test;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

import static org.mockserver.model.HttpRequest.request;
import static org.mockserver.model.HttpResponse.response;
import static org.rnorth.visibleassertions.VisibleAssertions.assertTrue;

public class MockServerContainerTest {

@ClassRule
public static MockServerContainer mockServer = new MockServerContainer();

@Test
public void testBasicScenario() throws Exception {
mockServer.getClient()
.when(request("/hello"))
.respond(response("Hello World!"));

URLConnection urlConnection = new URL(mockServer.getEndpoint() + "/hello").openConnection();
@Cleanup BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
String line = reader.readLine();
System.out.println(line);

assertTrue("MockServer returns correct result", line.contains("Hello World!"));
}
}

0 comments on commit 0a357ff

Please sign in to comment.