WIP: Clearified intend...
authorKai Moritz <kai@jupl.de>
Thu, 21 Nov 2019 21:02:09 +0000 (22:02 +0100)
committerKai Moritz <kai@jupl.de>
Thu, 21 Nov 2019 21:02:09 +0000 (22:02 +0100)
src/test/java/de/juplo/facebook/errors/GraphApiErrorResponseErrorHandlerIntegrationTest.java

index 81bcfe6..470af41 100644 (file)
@@ -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())
-        );
-  }
 }