78 lines
2.4 KiB
Java
78 lines
2.4 KiB
Java
package com.baeldung.httpclient;
|
|
|
|
import static org.mockserver.integration.ClientAndServer.startClientAndServer;
|
|
import static org.mockserver.matchers.Times.exactly;
|
|
import static org.mockserver.model.HttpRequest.request;
|
|
import static org.mockserver.model.HttpResponse.response;
|
|
|
|
import java.io.IOException;
|
|
import java.net.ServerSocket;
|
|
import java.net.URISyntaxException;
|
|
|
|
import org.apache.http.HttpStatus;
|
|
import org.junit.jupiter.api.AfterAll;
|
|
import org.junit.jupiter.api.BeforeAll;
|
|
import org.mockserver.client.MockServerClient;
|
|
import org.mockserver.integration.ClientAndServer;
|
|
|
|
public class GetRequestMockServer {
|
|
|
|
public static ClientAndServer mockServer;
|
|
public static String serviceOneUrl;
|
|
public static String serviceTwoUrl;
|
|
|
|
public static int serverPort;
|
|
|
|
public static final String SERVER_ADDRESS = "127.0.0.1";
|
|
public static final String PATH_ONE = "/test1";
|
|
public static final String PATH_TWO = "/test2";
|
|
public static final String METHOD = "GET";
|
|
|
|
@BeforeAll
|
|
static void startServer() throws IOException, URISyntaxException {
|
|
serverPort = getFreePort();
|
|
serviceOneUrl = "http://" + SERVER_ADDRESS + ":" + serverPort + PATH_ONE;
|
|
serviceTwoUrl = "http://" + SERVER_ADDRESS + ":" + serverPort + PATH_TWO;
|
|
mockServer = startClientAndServer(serverPort);
|
|
mockGetRequest();
|
|
}
|
|
|
|
@AfterAll
|
|
static void stopServer() {
|
|
mockServer.stop();
|
|
}
|
|
|
|
private static void mockGetRequest() {
|
|
new MockServerClient(SERVER_ADDRESS, serverPort)
|
|
.when(
|
|
request()
|
|
.withPath(PATH_ONE)
|
|
.withMethod(METHOD),
|
|
exactly(5)
|
|
)
|
|
.respond(
|
|
response()
|
|
.withStatusCode(HttpStatus.SC_OK)
|
|
.withBody("{\"status\":\"ok\"}")
|
|
);
|
|
new MockServerClient(SERVER_ADDRESS, serverPort)
|
|
.when(
|
|
request()
|
|
.withPath(PATH_TWO)
|
|
.withMethod(METHOD),
|
|
exactly(1)
|
|
)
|
|
.respond(
|
|
response()
|
|
.withStatusCode(HttpStatus.SC_OK)
|
|
.withBody("{\"status\":\"ok\"}")
|
|
);
|
|
}
|
|
|
|
private static int getFreePort () throws IOException {
|
|
try (ServerSocket serverSocket = new ServerSocket(0)) {
|
|
return serverSocket.getLocalPort();
|
|
}
|
|
}
|
|
}
|