@Test
  public void testAPIRequests() throws Exception {

    auth = new AuthenticationFacade();
    setupFacade = new SetupFacade();
    messageFacade = new SecureMessageFacade();

    TestOBSApplication.injectMocks(setupFacade);
    TestOBSApplication.injectMocks(auth);
    TestOBSApplication.injectMocks(messageFacade);
    TestOBSApplication.injectMocks(setupFacade.getRestClient());

    setupFacade.init(tokenConfiguration);

    setupFacade.login(
        "Asdf1234",
        new Callback() {
          @Override
          public void onTaskCompleted(Object result) {
            Log.d("HDB: onTaskCompleted", "Login Successful");
            messageFacade.getMessages(
                new Callback<GetSecureMessagesResponse>() {
                  @Override
                  public void onTaskCompleted(GetSecureMessagesResponse result) {
                    Log.d("HDB: SecureMessageFacadeTest.onTaskCompleted", result.toString());

                    for (SecureMessage msg :
                        result
                            .getMessages()
                            .subList(
                                0,
                                result.getMessages().size() < 10
                                    ? result.getMessages().size()
                                    : 10)) {
                      Log.d(
                          "HDB: Message",
                          "Fr: "
                              + msg.getOriginatingCompanyCode()
                              + "."
                              + msg.getOriginatingUsername()
                              + ", Subject: "
                              + msg.getSubject()
                              + ", Date: "
                              + msg.getDate());
                    }
                    Log.d("HDB: onTaskCompleted", result.toString());

                    Robolectric.runBackgroundTasks();
                    Robolectric.runUiThreadTasks();
                  }

                  @Override
                  public void onTaskFailure(String Reason) {}
                });

            Robolectric.runBackgroundTasks();
            Robolectric.runUiThreadTasks();
          }

          @Override
          public void onTaskFailure(String Reason) {
            Log.e("onTaskFailure", "Login Failed");
          }
        });
    Robolectric.runBackgroundTasks();
    Robolectric.runUiThreadTasks();
    Robolectric.runBackgroundTasks();
    Robolectric.runUiThreadTasks();
    Robolectric.runBackgroundTasks();
    Robolectric.runUiThreadTasks();
  }