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();
+ }
+
+
+}