Added JSON-mapping for responses from the Graph-API
[facebook-errors] / src / test / java / de / juplo / facebook / exceptions / FacebookErrorMessageMappingTest.java
diff --git a/src/test/java/de/juplo/facebook/exceptions/FacebookErrorMessageMappingTest.java b/src/test/java/de/juplo/facebook/exceptions/FacebookErrorMessageMappingTest.java
new file mode 100644 (file)
index 0000000..cd1a4c8
--- /dev/null
@@ -0,0 +1,72 @@
+package de.juplo.facebook.exceptions;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
+import de.juplo.facebook.exceptions.GraphApiException.FacebookErrorMessage;
+import java.io.IOException;
+import org.junit.Before;
+import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+
+/**
+ * @author Kai Moritz
+ */
+public class FacebookErrorMessageMappingTest
+{
+  final String example =
+      "{" +
+          "\"error\":{" +
+              "\"message\":\"Message describing the error\"," +
+              "\"type\":\"OAuthException\"," +
+              "\"code\":190," +
+              "\"error_subcode\":460," +
+              "\"error_user_title\":\"A title\"," +
+              "\"error_user_msg\":\"A message\"," +
+              "\"fbtrace_id\":\"EJplcsCHuLu\"" +
+          "}" +
+      "}";
+
+  ObjectMapper mapper;
+
+
+  @Before
+  public void setUp()
+  {
+    mapper = new ObjectMapper();
+    mapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);
+    mapper.configure(SerializationFeature.WRAP_ROOT_VALUE, true);
+  }
+
+
+  @Test
+  public void testSerialize() throws JsonProcessingException
+  {
+    FacebookErrorMessage error = new FacebookErrorMessage();
+    error.message = "Message describing the error";
+    error.type = "OAuthException";
+    error.code = 190;
+    error.subCode = 460;
+    error.userTitle = "A title";
+    error.userMessage = "A message";
+    error.traceId = "EJplcsCHuLu";
+
+    assertEquals(example, mapper.writeValueAsString(error));
+  }
+
+  @Test
+  public void testDeserialize() throws IOException
+  {
+    FacebookErrorMessage error =
+        mapper.readValue(example, FacebookErrorMessage.class);
+
+    assertEquals("Message describing the error", error.message);
+    assertEquals("OAuthException", error.type);
+    assertEquals(new Integer(190), error.code);
+    assertEquals(new Integer(460), error.subCode);
+    assertEquals("A title", error.userTitle);
+    assertEquals("A message", error.userMessage);
+    assertEquals("EJplcsCHuLu", error.traceId);
+  }
+}