@Test public void testDeleteWhenDeleteIsFailed() throws Exception { doAnswer( new Answer() { @Override public Object answer(InvocationOnMock invocation) throws Throwable { Object[] arguments = invocation.getArguments(); AsyncRequestCallback<Void> callback = (AsyncRequestCallback<Void>) arguments[1]; GwtReflectionUtils.callOnFailure(callback, mock(Throwable.class)); return callback; } }) .when(projectServiceClient) .delete(anyString(), (AsyncRequestCallback<Void>) anyObject()); DeleteCallback callback = mock(DeleteCallback.class); projectNode.delete(callback); verify(projectServiceClient) .delete(eq(ITEM_PATH), Matchers.<AsyncRequestCallback<Void>>anyObject()); verify(callback).onFailure(Matchers.<Throwable>anyObject()); }