X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fde%2Fjuplo%2Ffacebook%2Ferrors%2FGraphApiExchangeFilterFunctionIntegrationTest.java;h=c468590c7fc5126e3757b30c03d8977280672695;hb=904813dd6f8362f2d7aae87bad164108b3a42004;hp=87c3fe6b4982ef43ea421000f0cd1eba7b82872a;hpb=58021336ff2b6f6e16a0e070d093b61dee8dbc6f;p=facebook-errors diff --git a/src/test/java/de/juplo/facebook/errors/GraphApiExchangeFilterFunctionIntegrationTest.java b/src/test/java/de/juplo/facebook/errors/GraphApiExchangeFilterFunctionIntegrationTest.java index 87c3fe6..c468590 100644 --- a/src/test/java/de/juplo/facebook/errors/GraphApiExchangeFilterFunctionIntegrationTest.java +++ b/src/test/java/de/juplo/facebook/errors/GraphApiExchangeFilterFunctionIntegrationTest.java @@ -3,19 +3,18 @@ package de.juplo.facebook.errors; import de.juplo.facebook.errors.GraphApiException.Type; import java.time.Duration; +import java.util.List; import okhttp3.mockwebserver.MockResponse; import okhttp3.mockwebserver.MockWebServer; import org.junit.After; import static org.junit.Assert.assertEquals; import org.junit.Before; import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.http.client.reactive.ClientHttpConnector; +import org.springframework.http.HttpStatus; import org.springframework.http.client.reactive.JettyClientHttpConnector; -import org.springframework.http.client.reactive.ReactorClientHttpConnector; +import org.springframework.web.reactive.function.client.ExchangeFilterFunction; import org.springframework.web.reactive.function.client.WebClient; import reactor.core.publisher.Mono; import reactor.test.StepVerifier; @@ -25,7 +24,6 @@ import reactor.test.StepVerifier; * * @author Kai Moritz */ -@RunWith(Parameterized.class) public class GraphApiExchangeFilterFunctionIntegrationTest { private static final Logger LOG = @@ -34,19 +32,6 @@ public class GraphApiExchangeFilterFunctionIntegrationTest private MockWebServer server; private WebClient webClient; - @Parameterized.Parameter(0) - public ClientHttpConnector connector; - - @Parameterized.Parameters(name = "webClient [{0}]") - public static Object[][] arguments() - { - return new Object[][] - { - { new JettyClientHttpConnector() }, - { new ReactorClientHttpConnector() } - }; - } - @Before public void setup() @@ -55,7 +40,7 @@ public class GraphApiExchangeFilterFunctionIntegrationTest webClient = WebClient .builder() - .clientConnector(this.connector) + .clientConnector(new JettyClientHttpConnector()) .baseUrl(server.url("/").toString()) .filter(GraphApiExchangeFilterFunction.INSTANCE) .build(); @@ -71,12 +56,9 @@ public class GraphApiExchangeFilterFunctionIntegrationTest @Test public void testValidError() { - LOG.info("testValidError"); - - server .enqueue(new MockResponse() - .setStatus("400") + .setResponseCode(HttpStatus.BAD_REQUEST.value()) .setHeader("Content-Type", "application/json") .setBody( "{\n" + @@ -109,4 +91,55 @@ public class GraphApiExchangeFilterFunctionIntegrationTest }) .verify(Duration.ofSeconds(3)); } + + @Test + public void testTest() + { + WebClient webClient = + WebClient + .builder() + .clientConnector(new JettyClientHttpConnector()) + .baseUrl(server.url("/").toString()) + .filter((request, next) -> next.exchange(request).flatMap(response -> + { + List headerValues = response.headers().header("Foo"); + return headerValues.isEmpty() ? Mono.error(GraphApiException.create(response)) : + Mono.just(response); + })) + .build(); + + server + .enqueue(new MockResponse() + .setResponseCode(200) + .setHeader("Content-Type", "text/plain") + .setBody("Hello Spring!")); + + Mono result; + + result = webClient.get() + .uri("/greeting?name=Spring") + .retrieve() + .bodyToMono(String.class); + + StepVerifier.create(result) + .expectError(Exception.class) + .verify(Duration.ofSeconds(3)); + + server + .enqueue(new MockResponse() + .setResponseCode(200) + .setHeader("Content-Type", "text/plain") + .setHeader("Foo", "Bar") + .setBody("Hello Spring!")); + + result = webClient.get() + .uri("/greeting?name=Spring") + .retrieve() + .bodyToMono(String.class); + + StepVerifier.create(result) + .expectNext("Hello Spring!") + .expectComplete() + .verify(Duration.ofSeconds(3)); + } }