From: Kai Moritz Date: Thu, 21 Nov 2019 21:02:09 +0000 (+0100) Subject: WIP: Clearified intend... X-Git-Tag: wip-webclient~6 X-Git-Url: http://juplo.de/gitweb/?a=commitdiff_plain;h=b32b4862a4c0b75fe7d29e79f6b95c3a039d5ba9;p=facebook-errors WIP: Clearified intend... --- diff --git a/src/test/java/de/juplo/facebook/errors/GraphApiErrorResponseErrorHandlerIntegrationTest.java b/src/test/java/de/juplo/facebook/errors/GraphApiErrorResponseErrorHandlerIntegrationTest.java index 81bcfe6..470af41 100644 --- a/src/test/java/de/juplo/facebook/errors/GraphApiErrorResponseErrorHandlerIntegrationTest.java +++ b/src/test/java/de/juplo/facebook/errors/GraphApiErrorResponseErrorHandlerIntegrationTest.java @@ -2,6 +2,9 @@ package de.juplo.facebook.errors; import de.juplo.facebook.errors.GraphApiException.Type; +import okhttp3.mockwebserver.MockResponse; +import okhttp3.mockwebserver.MockWebServer; +import org.junit.After; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; import org.junit.Before; @@ -24,20 +27,57 @@ public class GraphApiErrorResponseErrorHandlerIntegrationTest private static final Logger LOG = LoggerFactory.getLogger(GraphApiErrorResponseErrorHandlerIntegrationTest.class); + private MockWebServer server; + private String uri; private RestTemplate clientTemplate; - private MockClientHttpRequestFactory requestFactory; + + + @Before + public void setup() + { + server = new MockWebServer(); + uri = server.url("/egal").toString(); + clientTemplate = new RestTemplate(); + clientTemplate.setErrorHandler(new GraphApiErrorResponseErrorHandler(clientTemplate.getErrorHandler())); + } + + @After + public void shutdown() throws Exception + { + this.server.shutdown(); + } @Test public void testNoError() { - requestFactory.setBody("{ \"message\": \"Hello World!\" }"); +// server +// .enqueue(new MockResponse() +// .setResponseCode(HttpStatus.CONTINUE.value()) +// .setHeader("Content-Type", "application/json") +// .setBody("{ \"message\": \"Hello World!\" }")); +// +// try +// { +// String result = clientTemplate.getForObject(uri, String.class); +// assertEquals("{ \"message\": \"Hello World!\" }", result); +// } +// catch(Exception e) +// { +// LOG.debug("{}", e.toString()); +// fail("Unexpected error: " + e); +// } + + + server + .enqueue(new MockResponse() + .setResponseCode(HttpStatus.OK.value()) + .setHeader("Content-Type", "application/json") + .setBody("{ \"message\": \"Hello World!\" }")); - - requestFactory.setStatus(HttpStatus.CONTINUE); try { - String result = clientTemplate.getForObject("ANY", String.class); + String result = clientTemplate.getForObject(uri, String.class); assertEquals("{ \"message\": \"Hello World!\" }", result); } catch(Exception e) @@ -46,22 +86,16 @@ public class GraphApiErrorResponseErrorHandlerIntegrationTest fail("Unexpected error: " + e); } - requestFactory.setStatus(HttpStatus.OK); - try - { - String result = clientTemplate.getForObject("ANY", String.class); - assertEquals("{ \"message\": \"Hello World!\" }", result); - } - catch(Exception e) - { - LOG.debug("{}", e.toString()); - fail("Unexpected error: " + e); - } - requestFactory.setStatus(HttpStatus.TEMPORARY_REDIRECT); + server + .enqueue(new MockResponse() + .setResponseCode(HttpStatus.TEMPORARY_REDIRECT.value()) + .setHeader("Content-Type", "application/json") + .setBody("{ \"message\": \"Hello World!\" }")); + try { - String result = clientTemplate.getForObject("ANY", String.class); + String result = clientTemplate.getForObject(uri, String.class); assertEquals("{ \"message\": \"Hello World!\" }", result); } catch(Exception e) @@ -70,10 +104,16 @@ public class GraphApiErrorResponseErrorHandlerIntegrationTest fail("Unexpected error: " + e); } - requestFactory.setStatus(HttpStatus.BAD_REQUEST); + + server + .enqueue(new MockResponse() + .setResponseCode(HttpStatus.BAD_REQUEST.value()) + .setHeader("Content-Type", "application/json") + .setBody("{ \"message\": \"Hello World!\" }")); + try { - clientTemplate.getForObject("ANY", String.class); + clientTemplate.getForObject(uri, String.class); fail("The parent handler should have raised an exception!"); } catch(HttpClientErrorException e) @@ -86,10 +126,16 @@ public class GraphApiErrorResponseErrorHandlerIntegrationTest fail("Unexpected error: " + e); } - requestFactory.setStatus(HttpStatus.INTERNAL_SERVER_ERROR); + + server + .enqueue(new MockResponse() + .setResponseCode(HttpStatus.INTERNAL_SERVER_ERROR.value()) + .setHeader("Content-Type", "application/json") + .setBody("{ \"message\": \"Hello World!\" }")); + try { - clientTemplate.getForObject("ANY", String.class); + clientTemplate.getForObject(uri, String.class); fail("The parent handler should have raised an exception!"); } catch(HttpServerErrorException e) @@ -106,19 +152,23 @@ public class GraphApiErrorResponseErrorHandlerIntegrationTest @Test public void testValidError() { - requestFactory.setBody( - "{\n" + - " \"error\":\n" + - " {\n" + - " \"message\": \"(#613) Calls to stream have exceeded the rate of 600 calls per 600 seconds.\",\n" + - " \"type\": \"OAuthException\",\n" + - " \"code\": 613\n" + - " }\n" + - "}"); + server + .enqueue(new MockResponse() + .setResponseCode(HttpStatus.BAD_REQUEST.value()) + .setHeader("Content-Type", "application/json") + .setBody( + "{\n" + + " \"error\":\n" + + " {\n" + + " \"message\": \"(#613) Calls to stream have exceeded the rate of 600 calls per 600 seconds.\",\n" + + " \"type\": \"OAuthException\",\n" + + " \"code\": 613\n" + + " }\n" + + "}")); try { - clientTemplate.getForObject("ANY", String.class); + clientTemplate.getForObject(uri, String.class); fail("The expected exception was not thrown"); } catch(RateLimitExceededException e) @@ -133,7 +183,11 @@ public class GraphApiErrorResponseErrorHandlerIntegrationTest @Test public void testUnmappedError() { - requestFactory.setBody( + server + .enqueue(new MockResponse() + .setResponseCode(HttpStatus.BAD_REQUEST.value()) + .setHeader("Content-Type", "application/json") + .setBody( "{\n" + " \"error\":\n" + " {\n" + @@ -141,11 +195,11 @@ public class GraphApiErrorResponseErrorHandlerIntegrationTest " \"type\": \"NonexistentTypeException\",\n" + " \"code\": 999999999\n" + " }\n" + - "}"); + "}")); try { - clientTemplate.getForObject("ANY", String.class); + clientTemplate.getForObject(uri, String.class); fail("The expected exception was not thrown"); } catch(GraphApiException e) @@ -166,7 +220,11 @@ public class GraphApiErrorResponseErrorHandlerIntegrationTest @Test public void testInvlalidError() { - requestFactory.setBody( + server + .enqueue(new MockResponse() + .setResponseCode(HttpStatus.BAD_REQUEST.value()) + .setHeader("Content-Type", "application/json") + .setBody( "{\n" + " \"error\":\n" + " {\n" + @@ -174,11 +232,11 @@ public class GraphApiErrorResponseErrorHandlerIntegrationTest " \"type\": \"Whatever\",\n" + " \"code\": \"some string\"\n" + " }\n" + - "}"); + "}")); try { - clientTemplate.getForObject("ANY", String.class); + clientTemplate.getForObject(uri, String.class); fail("The expected exception was not thrown"); } catch(HttpClientErrorException e) @@ -190,19 +248,4 @@ public class GraphApiErrorResponseErrorHandlerIntegrationTest fail("A wrong exception was thrown: " + e.toString()); } } - - - @Before - public void setUp() - { - requestFactory = new MockClientHttpRequestFactory(); - requestFactory.setStatus(HttpStatus.BAD_REQUEST); - requestFactory.addHeader("Content-Type", "application/json"); - - clientTemplate = new RestTemplate(); - clientTemplate.setRequestFactory(requestFactory); - clientTemplate.setErrorHandler( - new GraphApiErrorResponseErrorHandler(clientTemplate.getErrorHandler()) - ); - } }