From fe3b8e828827a43ab83568bfefc1814c5f2209b4 Mon Sep 17 00:00:00 2001 From: Thomas Naskali Date: Sun, 2 Feb 2025 22:42:31 +0200 Subject: [PATCH] switch to wiremock in tests --- pom.xml | 24 ++-- .../bgg/resource/AbstractMockServerIT.java | 77 +++++-------- .../resource/v1/BoardgameResourceV1IT.java | 43 +++---- .../bgg/resource/v1/CompanyResourceV1IT.java | 44 +++---- .../bgg/resource/v1/GeeklistResourceV1IT.java | 78 +++++-------- .../bgg/resource/v1/PersonResourceV1IT.java | 43 +++---- .../bgg/resource/v1/SearchResourceV1IT.java | 46 +++----- .../bgg/resource/v1/ThreadResourceV1IT.java | 44 +++---- .../resource/v2/CollectionResourceV2IT.java | 109 ++++-------------- .../bgg/resource/v2/CompanyResourceV2IT.java | 49 +++----- .../bgg/resource/v2/FamilyResourceV2IT.java | 52 +++------ .../resource/v2/ForumListResourceV2IT.java | 46 +++----- .../bgg/resource/v2/ForumResourceV2IT.java | 46 +++----- .../bgg/resource/v2/GuildResourceV2IT.java | 50 +++----- .../bgg/resource/v2/HotItemsResourceV2IT.java | 43 +++---- .../bgg/resource/v2/PersonResourceV2IT.java | 49 +++----- .../bgg/resource/v2/PlaysResourceV2IT.java | 63 ++++------ .../bgg/resource/v2/SearchResourceV2IT.java | 48 +++----- .../bgg/resource/v2/ThingResourceV2IT.java | 74 ++++-------- .../bgg/resource/v2/ThreadResourceV2IT.java | 60 ++++------ .../bgg/resource/v2/UserResourceV2IT.java | 64 ++++------ 21 files changed, 397 insertions(+), 755 deletions(-) diff --git a/pom.xml b/pom.xml index 77e6c19..8118645 100644 --- a/pom.xml +++ b/pom.xml @@ -64,16 +64,6 @@ graphql-java-extended-scalars 22.0 - - com.squareup.okhttp3 - okhttp - 4.12.0 - - - com.squareup.okhttp3 - mockwebserver - 4.12.0 - jakarta.el jakarta.el-api @@ -94,6 +84,11 @@ springdoc-openapi-starter-webflux-ui 2.8.3 + + org.wiremock.integrations + wiremock-spring-boot + 3.6.0 + @@ -182,13 +177,8 @@ test - com.squareup.okhttp3 - okhttp - test - - - com.squareup.okhttp3 - mockwebserver + org.wiremock.integrations + wiremock-spring-boot test diff --git a/src/test/java/li/naska/bgg/resource/AbstractMockServerIT.java b/src/test/java/li/naska/bgg/resource/AbstractMockServerIT.java index 8ee4417..408dc29 100644 --- a/src/test/java/li/naska/bgg/resource/AbstractMockServerIT.java +++ b/src/test/java/li/naska/bgg/resource/AbstractMockServerIT.java @@ -1,71 +1,56 @@ package li.naska.bgg.resource; +import static com.github.tomakehurst.wiremock.client.WireMock.*; + +import com.github.tomakehurst.wiremock.WireMockServer; +import com.github.tomakehurst.wiremock.client.ResponseDefinitionBuilder; +import com.github.tomakehurst.wiremock.matching.RequestPatternBuilder; import java.util.Arrays; import java.util.Objects; -import java.util.concurrent.TimeUnit; import lombok.SneakyThrows; -import okhttp3.mockwebserver.*; -import org.junit.jupiter.api.AfterAll; -import org.junit.jupiter.api.BeforeAll; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.web.server.LocalServerPort; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.test.context.DynamicPropertyRegistry; -import org.springframework.test.context.DynamicPropertySource; +import org.wiremock.spring.ConfigureWireMock; +import org.wiremock.spring.EnableWireMock; +import org.wiremock.spring.InjectWireMock; @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) -@DirtiesContext +@EnableWireMock({@ConfigureWireMock(name = "bgg-service", baseUrlProperties = "bgg.web.baseurl-bgs") +}) public abstract class AbstractMockServerIT { - protected static MockWebServer mockWebServer; + @InjectWireMock("bgg-service") + protected WireMockServer wireMock; @LocalServerPort protected int port; - @BeforeAll - static void setupMockWebServer() throws Exception { - mockWebServer = new MockWebServer(); - mockWebServer.setDispatcher(new QueueDispatcher()); - mockWebServer.start(); - } - - @AfterAll - static void teardownMockWebServer() throws Exception { - mockWebServer.shutdown(); - } - - @DynamicPropertySource - static void registerProperties(DynamicPropertyRegistry registry) { - registry.add("bgg.web.baseurl-bgs", () -> mockWebServer.url("/").url().toString()); - registry.add("bgg.web.baseurl-geekdo", () -> mockWebServer.url("/").url().toString()); - } - protected void enqueueXml(int responseCode, String mockResponseBody) { - enqueue(new MockResponse() - .setResponseCode(responseCode) - .addHeader(HttpHeaders.CONTENT_TYPE, MediaType.TEXT_XML) - .setBody(mockResponseBody)); + enqueue(aResponse() + .withStatus(responseCode) + .withHeader(HttpHeaders.CONTENT_TYPE, MediaType.TEXT_XML_VALUE) + .withBody(mockResponseBody)); } protected void enqueueJson(int responseCode, String mockResponseBody) { - enqueue(new MockResponse() - .setResponseCode(responseCode) - .addHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON) - .setBody(mockResponseBody)); + enqueue(aResponse() + .withStatus(responseCode) + .withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE) + .withBody(mockResponseBody)); } protected void enqueueHtml(int responseCode, String mockResponseBody) { - enqueue(new MockResponse() - .setResponseCode(responseCode) - .addHeader(HttpHeaders.CONTENT_TYPE, MediaType.TEXT_HTML) - .setBody(mockResponseBody)); + enqueue(aResponse() + .withStatus(responseCode) + .withHeader(HttpHeaders.CONTENT_TYPE, MediaType.TEXT_HTML_VALUE) + .withBody(mockResponseBody)); } - protected void enqueue(MockResponse... responses) { - mockWebServer.setDispatcher(new QueueDispatcher()); - Arrays.stream(responses).forEach(mockWebServer::enqueue); + protected void enqueue(ResponseDefinitionBuilder... responses) { + Arrays.stream(responses) + .forEach(response -> wireMock.stubFor(get(anyUrl()).willReturn(response))); } @SneakyThrows @@ -75,11 +60,7 @@ protected String readFileContent(String fileName) { .readAllBytes()); } - protected RecordedRequest takeRequest() { - try { - return mockWebServer.takeRequest(100, TimeUnit.MILLISECONDS); - } catch (InterruptedException e) { - return null; - } + protected void verify(int count, RequestPatternBuilder requestPatternBuilder) { + wireMock.verify(count, requestPatternBuilder); } } diff --git a/src/test/java/li/naska/bgg/resource/v1/BoardgameResourceV1IT.java b/src/test/java/li/naska/bgg/resource/v1/BoardgameResourceV1IT.java index d14ec33..abbc86a 100644 --- a/src/test/java/li/naska/bgg/resource/v1/BoardgameResourceV1IT.java +++ b/src/test/java/li/naska/bgg/resource/v1/BoardgameResourceV1IT.java @@ -1,20 +1,18 @@ package li.naska.bgg.resource.v1; -import static org.assertj.core.api.Assertions.assertThat; +import static com.github.tomakehurst.wiremock.client.WireMock.*; import jakarta.annotation.PostConstruct; import java.nio.charset.StandardCharsets; import java.util.function.Function; import java.util.function.Supplier; import li.naska.bgg.resource.AbstractMockServerIT; -import okhttp3.mockwebserver.RecordedRequest; import org.assertj.core.util.TriFunction; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.util.LinkedMultiValueMap; @@ -109,12 +107,9 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @@ -126,7 +121,7 @@ void should_1() { @Test @DisplayName("should not forward request") void should_2() { - assertThat(recordedRequest).isNull(); + verify(0, getRequestedFor(anyUrl())); } } } @@ -152,24 +147,21 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()).isEqualTo("/xmlapi/boardgame/71317"); + verify( + 1, + getRequestedFor(urlEqualTo("/xmlapi/boardgame/71317")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test @@ -199,24 +191,21 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()).isEqualTo("/xmlapi/boardgame/71317"); + verify( + 1, + getRequestedFor(urlEqualTo("/xmlapi/boardgame/71317")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test diff --git a/src/test/java/li/naska/bgg/resource/v1/CompanyResourceV1IT.java b/src/test/java/li/naska/bgg/resource/v1/CompanyResourceV1IT.java index 58be5c3..270c536 100644 --- a/src/test/java/li/naska/bgg/resource/v1/CompanyResourceV1IT.java +++ b/src/test/java/li/naska/bgg/resource/v1/CompanyResourceV1IT.java @@ -1,20 +1,19 @@ package li.naska.bgg.resource.v1; -import static org.assertj.core.api.Assertions.assertThat; +import static com.github.tomakehurst.wiremock.client.WireMock.*; +import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import jakarta.annotation.PostConstruct; import java.nio.charset.StandardCharsets; import java.util.function.Function; import java.util.function.Supplier; import li.naska.bgg.resource.AbstractMockServerIT; -import okhttp3.mockwebserver.RecordedRequest; import org.assertj.core.util.TriFunction; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.util.LinkedMultiValueMap; @@ -108,12 +107,9 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @@ -125,7 +121,7 @@ void should_1() { @Test @DisplayName("should not forward request") void should_2() { - assertThat(recordedRequest).isNull(); + verify(0, getRequestedFor(anyUrl())); } } } @@ -151,24 +147,21 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()).isEqualTo("/xmlapi/company/22222"); + verify( + 1, + getRequestedFor(urlEqualTo("/xmlapi/company/22222")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test @@ -198,24 +191,21 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()).isEqualTo("/xmlapi/company/22222"); + verify( + 1, + getRequestedFor(urlEqualTo("/xmlapi/company/22222")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test diff --git a/src/test/java/li/naska/bgg/resource/v1/GeeklistResourceV1IT.java b/src/test/java/li/naska/bgg/resource/v1/GeeklistResourceV1IT.java index f55255d..9e0ae6d 100644 --- a/src/test/java/li/naska/bgg/resource/v1/GeeklistResourceV1IT.java +++ b/src/test/java/li/naska/bgg/resource/v1/GeeklistResourceV1IT.java @@ -1,22 +1,20 @@ package li.naska.bgg.resource.v1; -import static org.assertj.core.api.Assertions.assertThat; +import static com.github.tomakehurst.wiremock.client.WireMock.*; +import com.github.tomakehurst.wiremock.client.ResponseDefinitionBuilder; import jakarta.annotation.PostConstruct; import java.nio.charset.StandardCharsets; import java.time.Duration; import java.util.function.Function; import java.util.function.Supplier; import li.naska.bgg.resource.AbstractMockServerIT; -import okhttp3.mockwebserver.MockResponse; -import okhttp3.mockwebserver.RecordedRequest; import org.assertj.core.util.TriFunction; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.util.LinkedMultiValueMap; @@ -59,18 +57,18 @@ class Given_1 { @BeforeEach public void setup() { enqueue( - new MockResponse() - .setResponseCode(202) - .setHeader(HttpHeaders.CONTENT_TYPE, MediaType.TEXT_XML) - .setBody(mockAcceptedBody), - new MockResponse() - .setResponseCode(202) - .setHeader(HttpHeaders.CONTENT_TYPE, MediaType.TEXT_XML) - .setBody(mockAcceptedBody), - new MockResponse() - .setResponseCode(200) - .setHeader(HttpHeaders.CONTENT_TYPE, MediaType.TEXT_XML) - .setBody(mockResponseBody)); + new ResponseDefinitionBuilder() + .withStatus(202) + .withHeader(HttpHeaders.CONTENT_TYPE, MediaType.TEXT_XML_VALUE) + .withBody(mockAcceptedBody), + new ResponseDefinitionBuilder() + .withStatus(202) + .withHeader(HttpHeaders.CONTENT_TYPE, MediaType.TEXT_XML_VALUE) + .withBody(mockAcceptedBody), + new ResponseDefinitionBuilder() + .withStatus(200) + .withHeader(HttpHeaders.CONTENT_TYPE, MediaType.TEXT_XML_VALUE) + .withBody(mockResponseBody)); } @Nested @@ -124,12 +122,9 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @@ -141,7 +136,7 @@ void should_1() { @Test @DisplayName("should not forward request") void should_2() { - assertThat(recordedRequest).isNull(); + verify(0, getRequestedFor(anyUrl())); } } } @@ -165,12 +160,9 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @@ -182,7 +174,7 @@ void should_1() { @Test @DisplayName("should not forward request") void should_2() { - assertThat(recordedRequest).isNull(); + verify(0, getRequestedFor(anyUrl())); } } } @@ -218,25 +210,22 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()) - .isEqualTo("/xmlapi/geeklist/1000?comments=1&start=100&count=200"); + verify( + 1, + getRequestedFor( + urlEqualTo("/xmlapi/geeklist/1000?comments=1&start=100&count=200")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test @@ -266,25 +255,22 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()) - .isEqualTo("/xmlapi/geeklist/1000" + "?comments=1" + "&start=100" + "&count=200"); + verify( + 1, + getRequestedFor( + urlEqualTo("/xmlapi/geeklist/1000?comments=1&start=100&count=200")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test diff --git a/src/test/java/li/naska/bgg/resource/v1/PersonResourceV1IT.java b/src/test/java/li/naska/bgg/resource/v1/PersonResourceV1IT.java index 3318eac..01b2983 100644 --- a/src/test/java/li/naska/bgg/resource/v1/PersonResourceV1IT.java +++ b/src/test/java/li/naska/bgg/resource/v1/PersonResourceV1IT.java @@ -1,20 +1,18 @@ package li.naska.bgg.resource.v1; -import static org.assertj.core.api.Assertions.assertThat; +import static com.github.tomakehurst.wiremock.client.WireMock.*; import jakarta.annotation.PostConstruct; import java.nio.charset.StandardCharsets; import java.util.function.Function; import java.util.function.Supplier; import li.naska.bgg.resource.AbstractMockServerIT; -import okhttp3.mockwebserver.RecordedRequest; import org.assertj.core.util.TriFunction; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.util.LinkedMultiValueMap; @@ -108,12 +106,9 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @@ -125,7 +120,7 @@ void should_1() { @Test @DisplayName("should not forward request") void should_2() { - assertThat(recordedRequest).isNull(); + verify(0, getRequestedFor(anyUrl())); } } } @@ -151,24 +146,21 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()).isEqualTo("/xmlapi/person/2"); + verify( + 1, + getRequestedFor(urlEqualTo("/xmlapi/person/2")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test @@ -198,24 +190,21 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()).isEqualTo("/xmlapi/person/2"); + verify( + 1, + getRequestedFor(urlEqualTo("/xmlapi/person/2")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test diff --git a/src/test/java/li/naska/bgg/resource/v1/SearchResourceV1IT.java b/src/test/java/li/naska/bgg/resource/v1/SearchResourceV1IT.java index 767ea4c..7092ddd 100644 --- a/src/test/java/li/naska/bgg/resource/v1/SearchResourceV1IT.java +++ b/src/test/java/li/naska/bgg/resource/v1/SearchResourceV1IT.java @@ -1,6 +1,7 @@ package li.naska.bgg.resource.v1; -import static org.assertj.core.api.Assertions.assertThat; +import static com.github.tomakehurst.wiremock.client.WireMock.*; +import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import jakarta.annotation.PostConstruct; import java.nio.charset.StandardCharsets; @@ -8,13 +9,11 @@ import java.util.function.Function; import java.util.function.Supplier; import li.naska.bgg.resource.AbstractMockServerIT; -import okhttp3.mockwebserver.RecordedRequest; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.util.LinkedMultiValueMap; @@ -73,12 +72,9 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @@ -90,7 +86,7 @@ void should_1() { @Test @DisplayName("should not forward request") void should_2() { - assertThat(recordedRequest).isNull(); + verify(0, getRequestedFor(anyUrl())); } } } @@ -122,25 +118,21 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()) - .isEqualTo("/xmlapi/search?search=corona&exact=1"); + verify( + 1, + getRequestedFor(urlEqualTo("/xmlapi/search?search=corona&exact=1")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test @@ -170,25 +162,21 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()) - .isEqualTo("/xmlapi/search?search=corona&exact=1"); + verify( + 1, + getRequestedFor(urlEqualTo("/xmlapi/search?search=corona&exact=1")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test diff --git a/src/test/java/li/naska/bgg/resource/v1/ThreadResourceV1IT.java b/src/test/java/li/naska/bgg/resource/v1/ThreadResourceV1IT.java index 360d343..7a22021 100644 --- a/src/test/java/li/naska/bgg/resource/v1/ThreadResourceV1IT.java +++ b/src/test/java/li/naska/bgg/resource/v1/ThreadResourceV1IT.java @@ -1,20 +1,19 @@ package li.naska.bgg.resource.v1; -import static org.assertj.core.api.Assertions.assertThat; +import static com.github.tomakehurst.wiremock.client.WireMock.*; +import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import jakarta.annotation.PostConstruct; import java.nio.charset.StandardCharsets; import java.util.function.Function; import java.util.function.Supplier; import li.naska.bgg.resource.AbstractMockServerIT; -import okhttp3.mockwebserver.RecordedRequest; import org.assertj.core.util.TriFunction; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.util.LinkedMultiValueMap; @@ -70,12 +69,9 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @@ -87,7 +83,7 @@ void should_1() { @Test @DisplayName("should not forward request") void should_2() { - assertThat(recordedRequest).isNull(); + verify(0, getRequestedFor(anyUrl())); } } } @@ -113,24 +109,21 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()).isEqualTo("/xmlapi/thread/381021"); + verify( + 1, + getRequestedFor(urlEqualTo("/xmlapi/thread/381021")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test @@ -160,24 +153,21 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()).isEqualTo("/xmlapi/thread/381021"); + verify( + 1, + getRequestedFor(urlEqualTo("/xmlapi/thread/381021")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test diff --git a/src/test/java/li/naska/bgg/resource/v2/CollectionResourceV2IT.java b/src/test/java/li/naska/bgg/resource/v2/CollectionResourceV2IT.java index 316814c..5bf6671 100644 --- a/src/test/java/li/naska/bgg/resource/v2/CollectionResourceV2IT.java +++ b/src/test/java/li/naska/bgg/resource/v2/CollectionResourceV2IT.java @@ -1,6 +1,6 @@ package li.naska.bgg.resource.v2; -import static org.assertj.core.api.Assertions.assertThat; +import static com.github.tomakehurst.wiremock.client.WireMock.*; import jakarta.annotation.PostConstruct; import java.nio.charset.StandardCharsets; @@ -8,13 +8,11 @@ import java.util.function.Function; import java.util.function.Supplier; import li.naska.bgg.resource.AbstractMockServerIT; -import okhttp3.mockwebserver.RecordedRequest; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.util.LinkedMultiValueMap; @@ -77,12 +75,9 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @@ -94,7 +89,7 @@ void should_1() { @Test @DisplayName("should not forward request") void should_2() { - assertThat(recordedRequest).isNull(); + verify(0, getRequestedFor(urlEqualTo("/xmlapi/collection"))); } } } @@ -156,55 +151,23 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()) - .isEqualTo("/xmlapi2/collection" - + "?username=gandalf" - + "&version=1" - + "&subtype=boardgame" - + "&excludesubtype=boardgameexpansion" - + "&id=666" - + "&brief=1" - + "&stats=1" - + "&own=1" - + "&rated=1" - + "&played=1" - + "&comment=1" - + "&trade=1" - + "&want=1" - + "&wishlist=1" - + "&wishlistpriority=1" - + "&preordered=1" - + "&wanttoplay=1" - + "&wanttobuy=1" - + "&prevowned=1" - + "&hasparts=1" - + "&wantparts=1" - + "&minrating=1" - + "&rating=1" - + "&minbggrating=1" - + "&bggrating=1" - + "&minplays=1" - + "&maxplays=1" - + "&showprivate=1" - + "&collid=1" - + "&modifiedsince=2021-01-31%2000:00:00"); + verify( + 1, + getRequestedFor( + urlEqualTo( + "/xmlapi2/collection?username=gandalf&version=1&subtype=boardgame&excludesubtype=boardgameexpansion&id=666&brief=1&stats=1&own=1&rated=1&played=1&comment=1&trade=1&want=1&wishlist=1&wishlistpriority=1&preordered=1&wanttoplay=1&wanttobuy=1&prevowned=1&hasparts=1&wantparts=1&minrating=1&rating=1&minbggrating=1&bggrating=1&minplays=1&maxplays=1&showprivate=1&collid=1&modifiedsince=2021-01-31%2000:00:00")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test @@ -234,55 +197,23 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()) - .isEqualTo("/xmlapi2/collection" - + "?username=gandalf" - + "&version=1" - + "&subtype=boardgame" - + "&excludesubtype=boardgameexpansion" - + "&id=666" - + "&brief=1" - + "&stats=1" - + "&own=1" - + "&rated=1" - + "&played=1" - + "&comment=1" - + "&trade=1" - + "&want=1" - + "&wishlist=1" - + "&wishlistpriority=1" - + "&preordered=1" - + "&wanttoplay=1" - + "&wanttobuy=1" - + "&prevowned=1" - + "&hasparts=1" - + "&wantparts=1" - + "&minrating=1" - + "&rating=1" - + "&minbggrating=1" - + "&bggrating=1" - + "&minplays=1" - + "&maxplays=1" - + "&showprivate=1" - + "&collid=1" - + "&modifiedsince=2021-01-31%2000:00:00"); + verify( + 1, + getRequestedFor( + urlEqualTo( + "/xmlapi2/collection?username=gandalf&version=1&subtype=boardgame&excludesubtype=boardgameexpansion&id=666&brief=1&stats=1&own=1&rated=1&played=1&comment=1&trade=1&want=1&wishlist=1&wishlistpriority=1&preordered=1&wanttoplay=1&wanttobuy=1&prevowned=1&hasparts=1&wantparts=1&minrating=1&rating=1&minbggrating=1&bggrating=1&minplays=1&maxplays=1&showprivate=1&collid=1&modifiedsince=2021-01-31%2000:00:00")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test diff --git a/src/test/java/li/naska/bgg/resource/v2/CompanyResourceV2IT.java b/src/test/java/li/naska/bgg/resource/v2/CompanyResourceV2IT.java index ba9cdc6..13aecdd 100644 --- a/src/test/java/li/naska/bgg/resource/v2/CompanyResourceV2IT.java +++ b/src/test/java/li/naska/bgg/resource/v2/CompanyResourceV2IT.java @@ -1,6 +1,6 @@ package li.naska.bgg.resource.v2; -import static org.assertj.core.api.Assertions.assertThat; +import static com.github.tomakehurst.wiremock.client.WireMock.*; import jakarta.annotation.PostConstruct; import java.nio.charset.StandardCharsets; @@ -8,13 +8,11 @@ import java.util.function.Function; import java.util.function.Supplier; import li.naska.bgg.resource.AbstractMockServerIT; -import okhttp3.mockwebserver.RecordedRequest; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.util.LinkedMultiValueMap; @@ -85,12 +83,9 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @@ -102,7 +97,7 @@ void should_1() { @Test @DisplayName("should not forward request") void should_2() { - assertThat(recordedRequest).isNull(); + verify(0, getRequestedFor(urlEqualTo("/xmlapi/company"))); } } } @@ -137,26 +132,22 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()) - .isEqualTo( - "/xmlapi2/company" + "?id=133" + "&type=boardgamepublisher" + "&videos=1"); + verify( + 1, + getRequestedFor( + urlEqualTo("/xmlapi2/company?id=133&type=boardgamepublisher&videos=1")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test @@ -186,26 +177,22 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()) - .isEqualTo( - "/xmlapi2/company" + "?id=133" + "&type=boardgamepublisher" + "&videos=1"); + verify( + 1, + getRequestedFor( + urlEqualTo("/xmlapi2/company?id=133&type=boardgamepublisher&videos=1")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test diff --git a/src/test/java/li/naska/bgg/resource/v2/FamilyResourceV2IT.java b/src/test/java/li/naska/bgg/resource/v2/FamilyResourceV2IT.java index e3a41bd..cf28c0f 100644 --- a/src/test/java/li/naska/bgg/resource/v2/FamilyResourceV2IT.java +++ b/src/test/java/li/naska/bgg/resource/v2/FamilyResourceV2IT.java @@ -1,6 +1,7 @@ package li.naska.bgg.resource.v2; -import static org.assertj.core.api.Assertions.assertThat; +import static com.github.tomakehurst.wiremock.client.WireMock.*; +import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import jakarta.annotation.PostConstruct; import java.nio.charset.StandardCharsets; @@ -8,13 +9,11 @@ import java.util.function.Function; import java.util.function.Supplier; import li.naska.bgg.resource.AbstractMockServerIT; -import okhttp3.mockwebserver.RecordedRequest; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.util.LinkedMultiValueMap; @@ -76,12 +75,9 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @@ -93,7 +89,7 @@ void should_1() { @Test @DisplayName("should not forward request") void should_2() { - assertThat(recordedRequest).isNull(); + verify(0, getRequestedFor(urlEqualTo("/xmlapi/family"))); } } } @@ -129,27 +125,22 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()) - .isEqualTo("/xmlapi2/family" - + "?id=666,667,668" - + "&type=boardgamefamily,rpg,rpgperiodical"); + verify( + 1, + getRequestedFor(urlEqualTo( + "/xmlapi2/family?id=666,667,668&type=boardgamefamily,rpg,rpgperiodical")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test @@ -179,27 +170,22 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()) - .isEqualTo("/xmlapi2/family" - + "?id=666,667,668" - + "&type=boardgamefamily,rpg,rpgperiodical"); + verify( + 1, + getRequestedFor(urlEqualTo( + "/xmlapi2/family?id=666,667,668&type=boardgamefamily,rpg,rpgperiodical")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test diff --git a/src/test/java/li/naska/bgg/resource/v2/ForumListResourceV2IT.java b/src/test/java/li/naska/bgg/resource/v2/ForumListResourceV2IT.java index 8e6bb3d..9d221d3 100644 --- a/src/test/java/li/naska/bgg/resource/v2/ForumListResourceV2IT.java +++ b/src/test/java/li/naska/bgg/resource/v2/ForumListResourceV2IT.java @@ -1,6 +1,7 @@ package li.naska.bgg.resource.v2; -import static org.assertj.core.api.Assertions.assertThat; +import static com.github.tomakehurst.wiremock.client.WireMock.*; +import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import jakarta.annotation.PostConstruct; import java.nio.charset.StandardCharsets; @@ -8,13 +9,11 @@ import java.util.function.Function; import java.util.function.Supplier; import li.naska.bgg.resource.AbstractMockServerIT; -import okhttp3.mockwebserver.RecordedRequest; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.util.LinkedMultiValueMap; @@ -75,12 +74,9 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @@ -92,7 +88,7 @@ void should_1() { @Test @DisplayName("should not forward request") void should_2() { - assertThat(recordedRequest).isNull(); + verify(0, getRequestedFor(urlEqualTo("/xmlapi/forumlist"))); } } } @@ -126,25 +122,21 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()) - .isEqualTo("/xmlapi2/forumlist" + "?id=666" + "&type=thing"); + verify( + 1, + getRequestedFor(urlEqualTo("/xmlapi2/forumlist?id=666&type=thing")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test @@ -174,25 +166,21 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()) - .isEqualTo("/xmlapi2/forumlist" + "?id=666" + "&type=thing"); + verify( + 1, + getRequestedFor(urlEqualTo("/xmlapi2/forumlist?id=666&type=thing")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test diff --git a/src/test/java/li/naska/bgg/resource/v2/ForumResourceV2IT.java b/src/test/java/li/naska/bgg/resource/v2/ForumResourceV2IT.java index 3a67cdb..22cd83e 100644 --- a/src/test/java/li/naska/bgg/resource/v2/ForumResourceV2IT.java +++ b/src/test/java/li/naska/bgg/resource/v2/ForumResourceV2IT.java @@ -1,6 +1,7 @@ package li.naska.bgg.resource.v2; -import static org.assertj.core.api.Assertions.assertThat; +import static com.github.tomakehurst.wiremock.client.WireMock.*; +import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import jakarta.annotation.PostConstruct; import java.nio.charset.StandardCharsets; @@ -8,13 +9,11 @@ import java.util.function.Function; import java.util.function.Supplier; import li.naska.bgg.resource.AbstractMockServerIT; -import okhttp3.mockwebserver.RecordedRequest; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.util.LinkedMultiValueMap; @@ -77,12 +76,9 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @@ -94,7 +90,7 @@ void should_1() { @Test @DisplayName("should not forward request") void should_2() { - assertThat(recordedRequest).isNull(); + verify(0, getRequestedFor(urlEqualTo("/xmlapi/forum"))); } } } @@ -128,25 +124,21 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()) - .isEqualTo("/xmlapi2/forum" + "?id=666" + "&page=1"); + verify( + 1, + getRequestedFor(urlEqualTo("/xmlapi2/forum?id=666&page=1")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test @@ -176,25 +168,21 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()) - .isEqualTo("/xmlapi2/forum" + "?id=666" + "&page=1"); + verify( + 1, + getRequestedFor(urlEqualTo("/xmlapi2/forum?id=666&page=1")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test diff --git a/src/test/java/li/naska/bgg/resource/v2/GuildResourceV2IT.java b/src/test/java/li/naska/bgg/resource/v2/GuildResourceV2IT.java index c345d25..11a91af 100644 --- a/src/test/java/li/naska/bgg/resource/v2/GuildResourceV2IT.java +++ b/src/test/java/li/naska/bgg/resource/v2/GuildResourceV2IT.java @@ -1,6 +1,7 @@ package li.naska.bgg.resource.v2; -import static org.assertj.core.api.Assertions.assertThat; +import static com.github.tomakehurst.wiremock.client.WireMock.*; +import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import jakarta.annotation.PostConstruct; import java.nio.charset.StandardCharsets; @@ -8,13 +9,11 @@ import java.util.function.Function; import java.util.function.Supplier; import li.naska.bgg.resource.AbstractMockServerIT; -import okhttp3.mockwebserver.RecordedRequest; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.util.LinkedMultiValueMap; @@ -85,12 +84,9 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @@ -102,7 +98,7 @@ void should_1() { @Test @DisplayName("should not forward request") void should_2() { - assertThat(recordedRequest).isNull(); + verify(0, getRequestedFor(urlEqualTo("/xmlapi2/guild"))); } } } @@ -138,26 +134,22 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()) - .isEqualTo( - "/xmlapi2/guild" + "?id=666" + "&members=1" + "&sort=username" + "&page=1"); + verify( + 1, + getRequestedFor( + urlEqualTo("/xmlapi2/guild?id=666&members=1&sort=username&page=1")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test @@ -187,26 +179,22 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()) - .isEqualTo( - "/xmlapi2/guild" + "?id=666" + "&members=1" + "&sort=username" + "&page=1"); + verify( + 1, + getRequestedFor( + urlEqualTo("/xmlapi2/guild?id=666&members=1&sort=username&page=1")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test diff --git a/src/test/java/li/naska/bgg/resource/v2/HotItemsResourceV2IT.java b/src/test/java/li/naska/bgg/resource/v2/HotItemsResourceV2IT.java index 814bc55..45897b3 100644 --- a/src/test/java/li/naska/bgg/resource/v2/HotItemsResourceV2IT.java +++ b/src/test/java/li/naska/bgg/resource/v2/HotItemsResourceV2IT.java @@ -1,6 +1,6 @@ package li.naska.bgg.resource.v2; -import static org.assertj.core.api.Assertions.assertThat; +import static com.github.tomakehurst.wiremock.client.WireMock.*; import jakarta.annotation.PostConstruct; import java.nio.charset.StandardCharsets; @@ -8,13 +8,11 @@ import java.util.function.Function; import java.util.function.Supplier; import li.naska.bgg.resource.AbstractMockServerIT; -import okhttp3.mockwebserver.RecordedRequest; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.util.LinkedMultiValueMap; @@ -78,12 +76,9 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @@ -95,7 +90,7 @@ void should_1() { @Test @DisplayName("should not forward request") void should_2() { - assertThat(recordedRequest).isNull(); + verify(0, getRequestedFor(anyUrl())); } } } @@ -128,24 +123,21 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()).isEqualTo("/xmlapi2/hot" + "?type=boardgame"); + verify( + 1, + getRequestedFor(urlEqualTo("/xmlapi2/hot?type=boardgame")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test @@ -175,24 +167,21 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()).isEqualTo("/xmlapi2/hot" + "?type=boardgame"); + verify( + 1, + getRequestedFor(urlEqualTo("/xmlapi2/hot?type=boardgame")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test diff --git a/src/test/java/li/naska/bgg/resource/v2/PersonResourceV2IT.java b/src/test/java/li/naska/bgg/resource/v2/PersonResourceV2IT.java index c4c9832..c5f1ec2 100644 --- a/src/test/java/li/naska/bgg/resource/v2/PersonResourceV2IT.java +++ b/src/test/java/li/naska/bgg/resource/v2/PersonResourceV2IT.java @@ -1,6 +1,6 @@ package li.naska.bgg.resource.v2; -import static org.assertj.core.api.Assertions.assertThat; +import static com.github.tomakehurst.wiremock.client.WireMock.*; import jakarta.annotation.PostConstruct; import java.nio.charset.StandardCharsets; @@ -8,13 +8,11 @@ import java.util.function.Function; import java.util.function.Supplier; import li.naska.bgg.resource.AbstractMockServerIT; -import okhttp3.mockwebserver.RecordedRequest; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.util.LinkedMultiValueMap; @@ -80,12 +78,9 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @@ -97,7 +92,7 @@ void should_1() { @Test @DisplayName("should not forward request") void should_2() { - assertThat(recordedRequest).isNull(); + verify(0, getRequestedFor(anyUrl())); } } } @@ -132,26 +127,22 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()) - .isEqualTo( - "/xmlapi2/person" + "?id=22" + "&type=boardgamedesigner" + "&videos=1"); + verify( + 1, + getRequestedFor( + urlEqualTo("/xmlapi2/person?id=22&type=boardgamedesigner&videos=1")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test @@ -181,26 +172,22 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()) - .isEqualTo( - "/xmlapi2/person" + "?id=22" + "&type=boardgamedesigner" + "&videos=1"); + verify( + 1, + getRequestedFor( + urlEqualTo("/xmlapi2/person?id=22&type=boardgamedesigner&videos=1")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test diff --git a/src/test/java/li/naska/bgg/resource/v2/PlaysResourceV2IT.java b/src/test/java/li/naska/bgg/resource/v2/PlaysResourceV2IT.java index 3fa39c4..a4a4fb8 100644 --- a/src/test/java/li/naska/bgg/resource/v2/PlaysResourceV2IT.java +++ b/src/test/java/li/naska/bgg/resource/v2/PlaysResourceV2IT.java @@ -1,6 +1,6 @@ package li.naska.bgg.resource.v2; -import static org.assertj.core.api.Assertions.assertThat; +import static com.github.tomakehurst.wiremock.client.WireMock.*; import jakarta.annotation.PostConstruct; import java.nio.charset.StandardCharsets; @@ -8,13 +8,11 @@ import java.util.function.Function; import java.util.function.Supplier; import li.naska.bgg.resource.AbstractMockServerIT; -import okhttp3.mockwebserver.RecordedRequest; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.util.LinkedMultiValueMap; @@ -80,12 +78,9 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @@ -97,7 +92,7 @@ void should_1() { @Test @DisplayName("should not forward request") void should_2() { - assertThat(recordedRequest).isNull(); + verify(0, getRequestedFor(anyUrl())); } } } @@ -136,32 +131,23 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()) - .isEqualTo("/xmlapi2/plays" - + "?username=gandalf" - + "&id=666" - + "&type=thing" - + "&mindate=2021-01-01" - + "&maxdate=2021-01-31" - + "&subtype=boardgame" - + "&page=1"); + verify( + 1, + getRequestedFor( + urlEqualTo( + "/xmlapi2/plays?username=gandalf&id=666&type=thing&mindate=2021-01-01&maxdate=2021-01-31&subtype=boardgame&page=1")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test @@ -191,32 +177,23 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()) - .isEqualTo("/xmlapi2/plays" - + "?username=gandalf" - + "&id=666" - + "&type=thing" - + "&mindate=2021-01-01" - + "&maxdate=2021-01-31" - + "&subtype=boardgame" - + "&page=1"); + verify( + 1, + getRequestedFor( + urlEqualTo( + "/xmlapi2/plays?username=gandalf&id=666&type=thing&mindate=2021-01-01&maxdate=2021-01-31&subtype=boardgame&page=1")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test diff --git a/src/test/java/li/naska/bgg/resource/v2/SearchResourceV2IT.java b/src/test/java/li/naska/bgg/resource/v2/SearchResourceV2IT.java index d41c6f9..405b63e 100644 --- a/src/test/java/li/naska/bgg/resource/v2/SearchResourceV2IT.java +++ b/src/test/java/li/naska/bgg/resource/v2/SearchResourceV2IT.java @@ -1,6 +1,7 @@ package li.naska.bgg.resource.v2; -import static org.assertj.core.api.Assertions.assertThat; +import static com.github.tomakehurst.wiremock.client.WireMock.*; +import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import jakarta.annotation.PostConstruct; import java.nio.charset.StandardCharsets; @@ -8,13 +9,11 @@ import java.util.function.Function; import java.util.function.Supplier; import li.naska.bgg.resource.AbstractMockServerIT; -import okhttp3.mockwebserver.RecordedRequest; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.util.LinkedMultiValueMap; @@ -77,12 +76,9 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @@ -94,7 +90,7 @@ void should_1() { @Test @DisplayName("should not forward request") void should_2() { - assertThat(recordedRequest).isNull(); + verify(0, getRequestedFor(anyUrl())); } } } @@ -129,25 +125,22 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()) - .isEqualTo("/xmlapi2/search" + "?query=bag%20end" + "&type=rpgitem" + "&exact=1"); + verify( + 1, + getRequestedFor( + urlEqualTo("/xmlapi2/search?query=bag%20end&type=rpgitem&exact=1")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test @@ -177,25 +170,22 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()) - .isEqualTo("/xmlapi2/search" + "?query=bag%20end" + "&type=rpgitem" + "&exact=1"); + verify( + 1, + getRequestedFor( + urlEqualTo("/xmlapi2/search?query=bag%20end&type=rpgitem&exact=1")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test diff --git a/src/test/java/li/naska/bgg/resource/v2/ThingResourceV2IT.java b/src/test/java/li/naska/bgg/resource/v2/ThingResourceV2IT.java index bbb3c49..4c1ed77 100644 --- a/src/test/java/li/naska/bgg/resource/v2/ThingResourceV2IT.java +++ b/src/test/java/li/naska/bgg/resource/v2/ThingResourceV2IT.java @@ -1,6 +1,7 @@ package li.naska.bgg.resource.v2; -import static org.assertj.core.api.Assertions.assertThat; +import static com.github.tomakehurst.wiremock.client.WireMock.*; +import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import jakarta.annotation.PostConstruct; import java.nio.charset.StandardCharsets; @@ -8,13 +9,11 @@ import java.util.function.Function; import java.util.function.Supplier; import li.naska.bgg.resource.AbstractMockServerIT; -import okhttp3.mockwebserver.RecordedRequest; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.util.LinkedMultiValueMap; @@ -76,12 +75,9 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @@ -93,7 +89,7 @@ void should_1() { @Test @DisplayName("should not forward request") void should_2() { - assertThat(recordedRequest).isNull(); + verify(0, getRequestedFor(anyUrl())); } } } @@ -139,37 +135,23 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()) - .isEqualTo("/xmlapi2/thing" - + "?id=666,667,668" - + "&type=boardgame,boardgameaccessory,boardgameexpansion" - + "&versions=1" - + "&videos=1" - + "&stats=1" - + "&historical=1" - + "&marketplace=1" - + "&comments=1" - + "&page=1" - + "&pagesize=10" - + "&from=2001-01-01" - + "&to=2001-12-31"); + verify( + 1, + getRequestedFor( + urlEqualTo( + "/xmlapi2/thing?id=666,667,668&type=boardgame,boardgameaccessory,boardgameexpansion&versions=1&videos=1&stats=1&historical=1&marketplace=1&comments=1&page=1&pagesize=10&from=2001-01-01&to=2001-12-31")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test @@ -199,37 +181,23 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()) - .isEqualTo("/xmlapi2/thing" - + "?id=666,667,668" - + "&type=boardgame,boardgameaccessory,boardgameexpansion" - + "&versions=1" - + "&videos=1" - + "&stats=1" - + "&historical=1" - + "&marketplace=1" - + "&comments=1" - + "&page=1" - + "&pagesize=10" - + "&from=2001-01-01" - + "&to=2001-12-31"); + verify( + 1, + getRequestedFor( + urlEqualTo( + "/xmlapi2/thing?id=666,667,668&type=boardgame,boardgameaccessory,boardgameexpansion&versions=1&videos=1&stats=1&historical=1&marketplace=1&comments=1&page=1&pagesize=10&from=2001-01-01&to=2001-12-31")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test diff --git a/src/test/java/li/naska/bgg/resource/v2/ThreadResourceV2IT.java b/src/test/java/li/naska/bgg/resource/v2/ThreadResourceV2IT.java index 74853ad..6407f90 100644 --- a/src/test/java/li/naska/bgg/resource/v2/ThreadResourceV2IT.java +++ b/src/test/java/li/naska/bgg/resource/v2/ThreadResourceV2IT.java @@ -1,6 +1,7 @@ package li.naska.bgg.resource.v2; -import static org.assertj.core.api.Assertions.assertThat; +import static com.github.tomakehurst.wiremock.client.WireMock.*; +import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import jakarta.annotation.PostConstruct; import java.nio.charset.StandardCharsets; @@ -8,13 +9,11 @@ import java.util.function.Function; import java.util.function.Supplier; import li.naska.bgg.resource.AbstractMockServerIT; -import okhttp3.mockwebserver.RecordedRequest; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.util.LinkedMultiValueMap; @@ -84,12 +83,9 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @@ -101,7 +97,7 @@ void should_1() { @Test @DisplayName("should not forward request") void should_2() { - assertThat(recordedRequest).isNull(); + verify(0, getRequestedFor(anyUrl())); } } } @@ -138,30 +134,23 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()) - .isEqualTo("/xmlapi2/thread" - + "?id=666" - + "&minarticleid=100" - + "&minarticledate=2021-01-31%2000:00:00" - + "&count=1" - + "&username=gandalf"); + verify( + 1, + getRequestedFor( + urlEqualTo( + "/xmlapi2/thread?id=666&minarticleid=100&minarticledate=2021-01-31%2000:00:00&count=1&username=gandalf")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test @@ -191,30 +180,23 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()) - .isEqualTo("/xmlapi2/thread" - + "?id=666" - + "&minarticleid=100" - + "&minarticledate=2021-01-31%2000:00:00" - + "&count=1" - + "&username=gandalf"); + verify( + 1, + getRequestedFor( + urlEqualTo( + "/xmlapi2/thread?id=666&minarticleid=100&minarticledate=2021-01-31%2000:00:00&count=1&username=gandalf")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test diff --git a/src/test/java/li/naska/bgg/resource/v2/UserResourceV2IT.java b/src/test/java/li/naska/bgg/resource/v2/UserResourceV2IT.java index 16fc892..a2fc71e 100644 --- a/src/test/java/li/naska/bgg/resource/v2/UserResourceV2IT.java +++ b/src/test/java/li/naska/bgg/resource/v2/UserResourceV2IT.java @@ -1,6 +1,7 @@ package li.naska.bgg.resource.v2; -import static org.assertj.core.api.Assertions.assertThat; +import static com.github.tomakehurst.wiremock.client.WireMock.*; +import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import jakarta.annotation.PostConstruct; import java.nio.charset.StandardCharsets; @@ -8,13 +9,11 @@ import java.util.function.Function; import java.util.function.Supplier; import li.naska.bgg.resource.AbstractMockServerIT; -import okhttp3.mockwebserver.RecordedRequest; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.util.LinkedMultiValueMap; @@ -88,12 +87,9 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @@ -105,7 +101,7 @@ void should_1() { @Test @DisplayName("should not forward request") void should_2() { - assertThat(recordedRequest).isNull(); + verify(0, getRequestedFor(anyUrl())); } } } @@ -144,32 +140,23 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()) - .isEqualTo("/xmlapi2/user" - + "?name=gandalf" - + "&buddies=1" - + "&guilds=1" - + "&hot=1" - + "&top=1" - + "&domain=boardgame" - + "&page=1"); + verify( + 1, + getRequestedFor( + urlEqualTo( + "/xmlapi2/user?name=gandalf&buddies=1&guilds=1&hot=1&top=1&domain=boardgame&page=1")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test @@ -199,32 +186,23 @@ class Then { private WebTestClient.ResponseSpec result; - private RecordedRequest recordedRequest; - @BeforeEach public void setup() { result = test.get(); - recordedRequest = takeRequest(); } @Test @DisplayName("should forward request") void should_1() { - assertThat(recordedRequest).isNotNull(); - assertThat(recordedRequest.getMethod()).isEqualTo(HttpMethod.GET.name()); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT)) - .isEqualTo(MediaType.APPLICATION_XML_VALUE); - assertThat(recordedRequest.getHeader(HttpHeaders.ACCEPT_CHARSET)) - .isEqualTo(StandardCharsets.UTF_8.displayName().toLowerCase()); - assertThat(recordedRequest.getPath()) - .isEqualTo("/xmlapi2/user" - + "?name=gandalf" - + "&buddies=1" - + "&guilds=1" - + "&hot=1" - + "&top=1" - + "&domain=boardgame" - + "&page=1"); + verify( + 1, + getRequestedFor( + urlEqualTo( + "/xmlapi2/user?name=gandalf&buddies=1&guilds=1&hot=1&top=1&domain=boardgame&page=1")) + .withHeader(HttpHeaders.ACCEPT, equalTo(MediaType.APPLICATION_XML_VALUE)) + .withHeader( + HttpHeaders.ACCEPT_CHARSET, + equalTo(StandardCharsets.UTF_8.displayName().toLowerCase()))); } @Test