package de.juplo.facebook.client;
+import de.juplo.facebook.exceptions.AccessTokenRequiredException;
+import de.juplo.facebook.exceptions.CallbackVerificationFailedException;
import de.juplo.facebook.exceptions.UnsupportedGetRequestException;
import de.juplo.facebook.exceptions.UnexpectedErrorException;
import de.juplo.facebook.exceptions.RateExceededException;
import de.juplo.facebook.exceptions.GraphApiException;
+import de.juplo.facebook.exceptions.GraphApiException.Type;
import de.juplo.facebook.exceptions.UnknownErrorException;
import de.juplo.facebook.exceptions.PageMigratedException;
import de.juplo.facebook.exceptions.UnmappedErrorException;
assertEquals("invalid_request", e.getOAuth2ErrorCode());
assertEquals(new Integer(1), e.getCode());
assertEquals("An unknown error has occurred.", e.getMessage());
- assertEquals("OAuthException", e.getType());
+ assertEquals(Type.OAuthException, e.getType());
}
}
assertEquals("invalid_request", e.getOAuth2ErrorCode());
assertEquals(new Integer(2), e.getCode());
assertEquals("An unexpected error has occurred. Please retry your request later.", e.getMessage());
- assertEquals("OAuthException", e.getType());
+ assertEquals(Type.OAuthException, e.getType());
}
}
assertEquals("invalid_request", e.getOAuth2ErrorCode());
assertEquals(new Integer(21), e.getCode());
assertEquals("(#21) Page ID 590408587650316 was migrated to page ID 1421620791415603. Please update your API calls to the new ID", e.getMessage());
- assertEquals("OAuthException", e.getType());
+ assertEquals(Type.OAuthException, e.getType());
}
}
assertEquals("invalid_request", e.getOAuth2ErrorCode());
assertEquals(new Integer(100), e.getCode());
assertEquals("Unsupported get request.", e.getMessage());
- assertEquals("GraphMethodException", e.getType());
+ assertEquals(Type.GraphMethodException, e.getType());
+ }
+ }
+
+ @Test
+ public void testError104()
+ {
+ log.info("testError104");
+
+ requestFactory.setBody("{\"error\":{\"message\":\"An access token is required to request this resource.\",\"type\":\"OAuthException\",\"code\":104,\"fbtrace_id\":\"E2Jjkj5++LL\"}}");
+
+ try
+ {
+ clientTemplate.getForObject("ANY", SOME.class);
+ fail("The expected exception was not thrown");
+ }
+ catch(AccessTokenRequiredException e)
+ {
+ log.debug("{}", e.toString());
+ assertEquals("invalid_request", e.getOAuth2ErrorCode());
+ assertEquals(new Integer(104), e.getCode());
+ assertEquals("An access token is required to request this resource.", e.getMessage());
+ assertEquals(Type.OAuthException, e.getType());
+ assertEquals("E2Jjkj5++LL", e.getTraceId());
}
}
assertEquals("invalid_request", e.getOAuth2ErrorCode());
assertEquals(new Integer(613), e.getCode());
assertEquals("(#613) Calls to stream have exceeded the rate of 600 calls per 600 seconds.", e.getMessage());
- assertEquals("OAuthException", e.getType());
+ assertEquals(Type.OAuthException, e.getType());
+ }
+ }
+
+ @Test
+ public void testError2200()
+ {
+ requestFactory.setBody("{\"error\":{\"message\":\"(#2200) callback verification failed: \",\"type\":\"OAuthException\",\"code\":2200,\"fbtrace_id\":\"ESLjoZKvPXg\"}}");
+
+ try
+ {
+ clientTemplate.getForObject("ANY", SOME.class);
+ fail("The expected exception was not thrown");
+ }
+ catch(CallbackVerificationFailedException e)
+ {
+ log.debug("{}", e.toString());
+ assertEquals("invalid_request", e.getOAuth2ErrorCode());
+ assertEquals(new Integer(2200), e.getCode());
+ assertEquals("(#2200) callback verification failed: ", e.getMessage());
+ assertEquals(Type.OAuthException, e.getType());
+ assertEquals("ESLjoZKvPXg", e.getTraceId());
}
}
" \"error\":\n" +
" {\n" +
" \"message\": \"This error does not exist.\",\n" +
- " \"type\": \"NonexistentException\",\n" +
+ " \"type\": \"NonexistentTypeException\",\n" +
" \"code\": 999999999\n" +
" }\n" +
"}");
assertEquals("invalid_request", e.getOAuth2ErrorCode());
assertEquals(new Integer(999999999), e.getCode());
assertEquals("This error does not exist.", e.getMessage());
- assertEquals("NonexistentException", e.getType());
+ try
+ {
+ Type type = e.getType();
+ log.error("unknown type: {}", type);
+ fail("unmapped type was resolved by enum: " + type);
+ }
+ catch (IllegalArgumentException ee) {}
}
}
" \"error\":\n" +
" {\n" +
" \"message\": null,\n" +
- " \"type\": \"Whatever\",\n" +
+ " \"type\": \"WhateverTypeException\",\n" +
" \"code\": 999999999\n" +
" }\n" +
"}");
{
log.debug("{}", e.toString());
assertNull(e.getMessage());
- assertEquals("Whatever", e.getType());
+ try
+ {
+ Type type = e.getType();
+ log.error("unknown type: {}", type);
+ fail("unmapped type was resolved by enum: " + type);
+ }
+ catch (IllegalArgumentException ee) {}
assertEquals(new Integer(999999999), e.getCode());
assertNull(e.getSubCode());
assertNull(e.getUserTitle());
"{\n" +
" \"error\":\n" +
" {\n" +
- " \"type\": \"Whatever\",\n" +
+ " \"type\": \"WhateverTypeException\",\n" +
" \"code\": 999999999\n" +
" }\n" +
"}");
{
log.debug("{}", e.toString());
assertNull(e.getMessage());
- assertEquals("Whatever", e.getType());
+ try
+ {
+ Type type = e.getType();
+ log.error("unknown type: {}", type);
+ fail("unmapped type was resolved by enum: " + type);
+ }
+ catch (IllegalArgumentException ee) {}
assertEquals(new Integer(999999999), e.getCode());
assertNull(e.getSubCode());
assertNull(e.getUserTitle());