@Test
public void testShouldAsyncCallableServiceRetryExecutionWhenTaskThrowsException() throws Exception {

  // GIVEN
  //the task call hangs, it doesn't return within a reasonable period of time
  Callable<Boolean> hangingTask = new Callable<Boolean>() {
    @Override
    public Boolean call() throws Exception {
      throw new IllegalStateException("****************** TESTING ****************");
    }
  };
  asyncCallableService = new AsyncCallableService<>(hangingTask, timeout, delay, Executors.newScheduledThreadPool(2));
  // WHEN
  Boolean serviceResult = asyncCallableService.call();
  // THEN
  verify();
  Assert.assertNull("Service result must be null", serviceResult);
}