### Question:
ExecuteTaskCallable implements Callable<AsyncTriggerExecutionResult> { @Override public AsyncTriggerExecutionResult call() { if (asyncTrigger.getRetries() >= asyncTrigger.getMaxRetries()) { throw new IllegalStateException(); } return asyncTriggerExecutor.execute(asyncTrigger, retryStrategy, context, asyncTriggerStore); } ExecuteTaskCallable(BrainslugContext context, AsyncTrigger asyncTrigger, AsyncTriggerStore asyncTriggerStore, AsyncTriggerExecutor asyncTriggerExecutor, RetryStrategy retryStrategy); @Override AsyncTriggerExecutionResult call(); @Override String toString();  }### Answer:
@Test(expected = IllegalStateException.class) public void shouldThrowExceptionWhenNoRetriesLeft() { BrainslugContext context = brainslugContext(); AsyncTrigger asyncTriggerWithNoRetriesLeft = taskMock(0); new ExecuteTaskCallable(context, asyncTriggerWithNoRetriesLeft, asyncTriggerStore, asyncTriggerExecutor, retryStrategy).call(); }