/**
  * Run the following test case.
  *
  * <ol>
  *   <li>Attempt to log-off
  *   <li>Have the log-off succeed
  *   <li>Make sure the onSuccess handler is called
  *   <li>Make sure the onLogout handler is called
  * </ol>
  */
 @Test
 public void testLogoffAsync_success() {
   Object model = new Object();
   when(mockAsyncQuery.getModel()).thenReturn(model);
   DbUser testUser = new DbUser();
   testUser.setLoginName("testUser"); // $NON-NLS-1$
   frontend.logoffAsync(testUser, mockAsyncQuery);
   verify(mockService).logOff(eq(testUser), callbackAction.capture());
   VdcReturnValueBase returnValue = new VdcReturnValueBase();
   callbackAction.getValue().onSuccess(returnValue);
   verify(mockAsyncCallback).onSuccess(model, returnValue);
   verify(mockLoginHandler).onLogout();
 }
 /**
  * Run the following test case.
  *
  * <ol>
  *   <li>Attempt to log-off
  *   <li>Have the log-off fail with a status code of 0, which is an ignored failure
  *   <li>Check to make sure the callback is not called
  *   <li>Check to make sure the events handler is never called
  *   <li>Make sure the onSuccess handler is never called
  * </ol>
  */
 @Test
 public void testLogoffAsync_ignored_failure() {
   Object model = new Object();
   when(mockAsyncQuery.getModel()).thenReturn(model);
   DbUser testUser = new DbUser();
   testUser.setLoginName("testUser"); // $NON-NLS-1$
   frontend.logoffAsync(testUser, mockAsyncQuery);
   verify(mockService).logOff(eq(testUser), callbackAction.capture());
   StatusCodeException exception = new StatusCodeException(0, "0 status code"); // $NON-NLS-1$
   callbackAction.getValue().onFailure(exception);
   verify(mockFrontendFailureEvent, never()).raise(eq(Frontend.class), (EventArgs) any());
   verify(mockEventsHandler, never()).runQueryFailed(null);
   verify(mockAsyncCallback, never()).onSuccess(model, null);
 }