/** Do we correctly handle the case where FB returns an OAuthException without an error code? */
  @Test
  public void oauthExceptionWithoutErrorCode() {
    FacebookClient facebookClient =
        facebookClientWithResponse(
            new Response(
                403,
                "{\"error\":{\"message\":\"(#210) User not visible\",\"type\":\"OAuthException\"}}"));

    try {
      facebookClient.fetchObject("me", User.class);
    } catch (FacebookOAuthException e) {
      assertEquals("(#210) User not visible", e.getErrorMessage());
      assertEquals("OAuthException", e.getErrorType());
      assertEquals(null, e.getErrorCode());
    }
  }
 /** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */
 @Override
 protected void doPost(HttpServletRequest request, HttpServletResponse response)
     throws ServletException, IOException {
   // TODO Auto-generated method stub
   PrintWriter out = response.getWriter();
   out.println("* Fetching single objects *");
   try {
     User user = fbClient.fetchObject("me", User.class);
     Page page = fbClient.fetchObject("tradesbyjack", Page.class);
     out.println("User name: " + user.getName());
     out.println("User name: " + user.getId());
     out.println("User name: " + user.getGender());
     out.println("Page likes: " + page.getLikes());
   } catch (FacebookOAuthException fbexp) {
     out.println("Cannot find user info. " + fbexp.getErrorMessage());
   }
 }
  /**
   * Do we correctly handle the case where FB returns an OAuthException with an error code and
   * subcode?
   */
  @Test
  public void oauthExceptionWithErrorSubcode() {
    FacebookClient facebookClient =
        facebookClientWithResponse(
            new Response(
                403,
                "{\"error\":{\"message\":\"App Not Installed\",\"type\":\"OAuthException\",\"code\":190,\"error_subcode\":458}}"));

    try {
      facebookClient.fetchObject("me", User.class);
    } catch (FacebookOAuthException e) {
      assertEquals("App Not Installed", e.getErrorMessage());
      assertEquals("OAuthException", e.getErrorType());
      assertEquals(Integer.valueOf(190), e.getErrorCode());
      assertEquals(Integer.valueOf(458), e.getErrorSubcode());
    }
  }