<dependency>
<groupId>org.mock-server</groupId>
<artifactId>mockserver-netty</artifactId>
<version>${mockserver.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mock-server</groupId>
<artifactId>mockserver-client-java</artifactId>
<version>${mockserver.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>${netty.version}</version>
</dependency>
public class MockServerWrapper {
private static MockServerClient mockServerClient;
public static void startMockServer() {
mockServerClient = new ClientAndServer();
}
public static void stopMockServer() {
mockServerClient.stop();
}
public static void resetMocks() {
mockServerClient.reset();
}
public static void createExpectation(HttpRequest request, HttpResponse response) {
mockServerClient.when(request).respond(response);
}
}
public class ProxyServerWrapper {
private static ProxyServer proxyServer;
public static void startProxyServer() {
proxyServer = new DefaultProxyServer();
proxyServer.start();
}
public static void stopProxyServer() {
proxyServer.stop();
}
public static void resetRules() {
proxyServer.reset();
}
public static void addRule(RequestRule rule) {
proxyServer.addRule(rule);
}
}
public class TestLibrary {
public static void main(String[] args) {
MockServerWrapper.startMockServer();
ProxyServerWrapper.startProxyServer();
HttpRequest mockRequest = new HttpRequest().withPath("/api/test");
HttpResponse mockResponse = new HttpResponse().withStatusCode(200).withBody("Mock response");
MockServerWrapper.createExpectation(mockRequest, mockResponse);
HttpRequest proxyRequest = new HttpRequest().withMethod(Method.GET).withPath("/api/test");
HttpResponse proxyResponse = new HttpResponse().withStatusCode(200).withBody("Proxy response");
RequestRule rule = new RequestRule(mockRequest, new ForwardAction(proxyRequest)).withResponse(proxyResponse);
ProxyServerWrapper.addRule(rule);
}
}