test: Wiremock extension

This commit is contained in:
Piotr Dec 2024-05-23 22:01:24 +02:00
parent 497574b618
commit b2cbfad2ac
Signed by: stawros
GPG key ID: F89F27AD8F881A91
2 changed files with 52 additions and 0 deletions

View file

@ -27,6 +27,7 @@
<maven.compiler.target>${java.version}</maven.compiler.target>
<!-- dependencies -->
<wiremock.version>3.5.4</wiremock.version>
<!-- plugins -->
<jsonschema2pojo.version>1.2.1</jsonschema2pojo.version>
@ -78,6 +79,12 @@
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
</dependency>
<dependency>
<groupId>org.wiremock</groupId>
<artifactId>wiremock</artifactId>
<version>${wiremock.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>

View file

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