WIP
[facebook-errors] / src / test / java / de / juplo / facebook / exceptions / FacebookErrorMessageMappingTest.java
1 package de.juplo.facebook.exceptions;
2
3 import com.fasterxml.jackson.core.JsonProcessingException;
4 import de.juplo.facebook.exceptions.GraphApiException.FacebookErrorMessage;
5 import static de.juplo.facebook.exceptions.GraphApiException.OBJECT_MAPPER;
6 import de.juplo.facebook.exceptions.GraphApiException.Type;
7 import java.io.IOException;
8 import org.junit.Test;
9 import static org.junit.Assert.assertEquals;
10 import static org.junit.Assert.assertNull;
11
12 /**
13  * @author Kai Moritz
14  */
15 public class FacebookErrorMessageMappingTest
16 {
17   final String example =
18       "{" +
19           "\"error\":{" +
20               "\"message\":\"Message describing the error\"," +
21               "\"type\":\"OAuthException\"," +
22               "\"code\":190," +
23               "\"error_subcode\":460," +
24               "\"error_user_title\":\"A title\"," +
25               "\"error_user_msg\":\"A message\"," +
26               "\"fbtrace_id\":\"EJplcsCHuLu\"" +
27           "}" +
28       "}";
29
30   final String error_100 = "{\"error\":{\"message\":\"Unsupported get request. Please read the Graph API documentation at https:\\/\\/developers.facebook.com\\/docs\\/graph-api\",\"type\":\"GraphMethodException\",\"code\":100,\"fbtrace_id\":\"Bs\\/0p3CiVld\"}}";
31
32
33   @Test
34   public void testSerialize() throws JsonProcessingException
35   {
36     FacebookErrorMessage error = new FacebookErrorMessage();
37     error.message = "Message describing the error";
38     error.type = Type.OAuthException.name();
39     error.code = 190;
40     error.subCode = 460;
41     error.userTitle = "A title";
42     error.userMessage = "A message";
43     error.traceId = "EJplcsCHuLu";
44
45     assertEquals(example, OBJECT_MAPPER.writeValueAsString(error));
46   }
47
48   @Test
49   public void testSerialize100() throws JsonProcessingException
50   {
51     FacebookErrorMessage error = new FacebookErrorMessage();
52     error.message = "Unsupported get request. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api";
53     error.type = "GraphMethodException";
54     error.code = 100;
55     error.traceId = "Bs/0p3CiVld";
56
57     assertEquals(error_100, OBJECT_MAPPER.writeValueAsString(error));
58   }
59
60   @Test
61   public void testDeserialize() throws IOException
62   {
63     FacebookErrorMessage error =
64         OBJECT_MAPPER.readValue(example, FacebookErrorMessage.class);
65
66     assertEquals("Message describing the error", error.message);
67     assertEquals(Type.OAuthException.name(), error.type);
68     assertEquals(new Integer(190), error.code);
69     assertEquals(new Integer(460), error.subCode);
70     assertEquals("A title", error.userTitle);
71     assertEquals("A message", error.userMessage);
72     assertEquals("EJplcsCHuLu", error.traceId);
73   }
74
75   @Test
76   public void testDeserialize100() throws IOException
77   {
78     FacebookErrorMessage error =
79         OBJECT_MAPPER.readValue(error_100, FacebookErrorMessage.class);
80
81     assertEquals("Unsupported get request. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api", error.message);
82     assertEquals("GraphMethodException", error.type);
83     assertEquals(new Integer(100), error.code);
84     assertNull(error.subCode);
85     assertNull(error.userTitle);
86     assertNull(error.userMessage);
87     assertEquals("Bs/0p3CiVld", error.traceId);
88   }
89 }