@Test
public void testCallableServiceShouldRetryTaskExecutionTillTimeoutExceededWhenTaskThrowsException() throws Exception {

  // GIVEN
  // the task to be throws exception
  expect(taskMock.call()).andThrow(new IllegalStateException("****************** TESTING ****************")).times(2, 3);
  replayAll();
  asyncCallableService = new AsyncCallableService<>(taskMock, timeout, delay, Executors.newScheduledThreadPool(2));
  // WHEN
  Boolean serviceResult = asyncCallableService.call();
  // THEN
  verify();
  // THEN
  Assert.assertNull("Service result must be null", serviceResult);
}