X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fde%2Fjuplo%2Ffacebook%2Ferrors%2FGraphApiErrorResponseErrorHandlerIntegrationTest.java;h=28b6f4f279bdb132fe0e0767b3b5c4266a35e211;hb=f167f5aa8e4263e1bc9cb8e4246641ccf8cd5105;hp=55025e7f7702ef78004116a9cdb466e2ec12df06;hpb=63e833064340517abf8c5a19d13efa96aeb8a563;p=facebook-errors diff --git a/src/test/java/de/juplo/facebook/errors/GraphApiErrorResponseErrorHandlerIntegrationTest.java b/src/test/java/de/juplo/facebook/errors/GraphApiErrorResponseErrorHandlerIntegrationTest.java index 55025e7..28b6f4f 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,33 +27,58 @@ public class GraphApiErrorResponseErrorHandlerIntegrationTest private static final Logger LOG = LoggerFactory.getLogger(GraphApiErrorResponseErrorHandlerIntegrationTest.class); + private MockWebServer server; + private String uri; private RestTemplate clientTemplate; - private MockClientHttpRequestFactory requestFactory; - @Test - public void testNoError() + @Before + public void setup() { - LOG.info("testNoError"); + server = new MockWebServer(); + uri = server.url("/egal").toString(); + clientTemplate = new RestTemplate(); + clientTemplate.setErrorHandler(new GraphApiErrorResponseErrorHandler(clientTemplate.getErrorHandler())); + } - requestFactory.setBody("{ \"message\": \"Hello World!\" }"); + @After + public void shutdown() throws Exception + { + this.server.shutdown(); + } - requestFactory.setStatus(HttpStatus.CONTINUE); - try - { - clientTemplate.getForObject("ANY", SOME.class); - } - catch(Exception e) - { - LOG.debug("{}", e.toString()); - fail("Unexpected error: " + e); - } + @Test + public void testNoError() + { + //server + // .enqueue(new MockResponse() + // .setResponseCode(HttpStatus.CONTINUE.value()) + // .setHeader("Content-Type", "application/json") + // .setBody("Hallo Welt!")); + // + //try + //{ + // String result = clientTemplate.getForObject(uri, String.class); + // assertEquals("Hallo Welt!", result); + //} + //catch(Exception e) + //{ + // LOG.debug("{}", e.toString()); + // fail("Unexpected error: " + e); + //} + + + server + .enqueue(new MockResponse() + .setResponseCode(HttpStatus.OK.value()) + .setHeader("Content-Type", "text/plain") + .setBody("Hallo Welt!")); - requestFactory.setStatus(HttpStatus.OK); try { - clientTemplate.getForObject("ANY", SOME.class); + String result = clientTemplate.getForObject(uri, String.class); + assertEquals("Hallo Welt!", result); } catch(Exception e) { @@ -58,10 +86,17 @@ public class GraphApiErrorResponseErrorHandlerIntegrationTest fail("Unexpected error: " + e); } - requestFactory.setStatus(HttpStatus.TEMPORARY_REDIRECT); + + server + .enqueue(new MockResponse() + .setResponseCode(HttpStatus.TEMPORARY_REDIRECT.value()) + .setHeader("Content-Type", "text/plain") + .setBody("Hallo Welt!")); + try { - clientTemplate.getForObject("ANY", SOME.class); + String result = clientTemplate.getForObject(uri, String.class); + assertEquals("Hallo Welt!", result); } catch(Exception e) { @@ -69,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", "text/plain") + .setBody("Hallo Welt!")); + try { - clientTemplate.getForObject("ANY", SOME.class); + clientTemplate.getForObject(uri, String.class); fail("The parent handler should have raised an exception!"); } catch(HttpClientErrorException e) @@ -85,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", "text/plain") + .setBody("Hallo Welt!")); + try { - clientTemplate.getForObject("ANY", SOME.class); + clientTemplate.getForObject(uri, String.class); fail("The parent handler should have raised an exception!"); } catch(HttpServerErrorException e) @@ -105,22 +152,23 @@ public class GraphApiErrorResponseErrorHandlerIntegrationTest @Test public void testValidError() { - LOG.info("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", SOME.class); + clientTemplate.getForObject(uri, String.class); fail("The expected exception was not thrown"); } catch(RateLimitExceededException e) @@ -135,22 +183,23 @@ public class GraphApiErrorResponseErrorHandlerIntegrationTest @Test public void testUnmappedError() { - LOG.info("testUnmappedError"); - - - requestFactory.setBody( - "{\n" + - " \"error\":\n" + - " {\n" + - " \"message\": \"This error does not exist.\",\n" + - " \"type\": \"NonexistentTypeException\",\n" + - " \"code\": 999999999\n" + - " }\n" + - "}"); + server + .enqueue(new MockResponse() + .setResponseCode(HttpStatus.BAD_REQUEST.value()) + .setHeader("Content-Type", "application/json") + .setBody( + "{\n" + + " \"error\":\n" + + " {\n" + + " \"message\": \"This error does not exist.\",\n" + + " \"type\": \"NonexistentTypeException\",\n" + + " \"code\": 999999999\n" + + " }\n" + + "}")); try { - clientTemplate.getForObject("ANY", SOME.class); + clientTemplate.getForObject(uri, String.class); fail("The expected exception was not thrown"); } catch(GraphApiException e) @@ -171,22 +220,23 @@ public class GraphApiErrorResponseErrorHandlerIntegrationTest @Test public void testInvlalidError() { - LOG.info("testInvalidError"); - - - requestFactory.setBody( - "{\n" + - " \"error\":\n" + - " {\n" + - " \"message\": \"Not a Graph-Api-Exception.\",\n" + - " \"type\": \"Whatever\",\n" + - " \"code\": \"some string\"\n" + - " }\n" + - "}"); + server + .enqueue(new MockResponse() + .setResponseCode(HttpStatus.BAD_REQUEST.value()) + .setHeader("Content-Type", "application/json") + .setBody( + "{\n" + + " \"error\":\n" + + " {\n" + + " \"message\": \"Not a Graph-Api-Exception.\",\n" + + " \"type\": \"Whatever\",\n" + + " \"code\": \"some string\"\n" + + " }\n" + + "}")); try { - clientTemplate.getForObject("ANY", SOME.class); + clientTemplate.getForObject(uri, String.class); fail("The expected exception was not thrown"); } catch(HttpClientErrorException e) @@ -197,25 +247,26 @@ 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()) - ); - } + server + .enqueue(new MockResponse() + .setResponseCode(HttpStatus.BAD_REQUEST.value()) + .setHeader("Content-Type", "text/plain") + .setBody("Hallo Welt!")); - static class SOME - { + try + { + clientTemplate.getForObject(uri, String.class); + fail("The expected exception was not thrown"); + } + catch(HttpClientErrorException e) + { + LOG.debug("{}", e.toString()); + } + catch(Exception e) + { + fail("A wrong exception was thrown: " + e.toString()); + } } }