From b2cbfad2ac8efbb538faec50df94d7e85637b58a Mon Sep 17 00:00:00 2001 From: Piotr Dec Date: Thu, 23 May 2024 22:01:24 +0200 Subject: [PATCH] test: Wiremock extension --- pom.xml | 7 +++ .../eu/ztsh/wymiana/WireMockExtension.java | 45 +++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 src/test/java/eu/ztsh/wymiana/WireMockExtension.java diff --git a/pom.xml b/pom.xml index 1ad6a08..dddde47 100644 --- a/pom.xml +++ b/pom.xml @@ -27,6 +27,7 @@ ${java.version} + 3.5.4 1.2.1 @@ -78,6 +79,12 @@ org.assertj assertj-core + + org.wiremock + wiremock + ${wiremock.version} + test + diff --git a/src/test/java/eu/ztsh/wymiana/WireMockExtension.java b/src/test/java/eu/ztsh/wymiana/WireMockExtension.java new file mode 100644 index 0000000..7a7904f --- /dev/null +++ b/src/test/java/eu/ztsh/wymiana/WireMockExtension.java @@ -0,0 +1,45 @@ +package eu.ztsh.wymiana; + +import com.github.tomakehurst.wiremock.WireMockServer; +import com.github.tomakehurst.wiremock.client.WireMock; +import org.junit.jupiter.api.extension.AfterEachCallback; +import org.junit.jupiter.api.extension.BeforeAllCallback; +import org.junit.jupiter.api.extension.ExtensionContext; + +import static com.github.tomakehurst.wiremock.client.WireMock.*; + +public class WireMockExtension implements BeforeAllCallback, AfterEachCallback, ExtensionContext.Store.CloseableResource { + + public static final String baseUrl = "http://localhost:38080"; + + public static void response(String endpoint, int status, String body) { + configureFor(38080); + stubFor(get(urlEqualTo(endpoint)).willReturn(WireMock.status(status).withBody(body))); + } + + public static void verifyGet(int count, String url) { + verify(exactly(count), getRequestedFor(urlEqualTo(url))); + } + + private static final WireMockServer wireMockServer = new WireMockServer(38080); + private boolean started; + + @Override + public void beforeAll(ExtensionContext extensionContext) throws Exception { + if (!started) { + wireMockServer.start(); + started = true; + } + } + @Override + public void afterEach(ExtensionContext extensionContext) throws Exception { + wireMockServer.listAllStubMappings().getMappings().forEach(wireMockServer::removeStub); + } + + @Override + public void close() throws Throwable { + wireMockServer.stop(); + } + + +}