@Test(timeout = 1000L)
public void Should_letStrategyExecuteTask()
        throws Exception {

    ITask taskMock = mock(ITask.class);
    when(queueMock.tryTake())
            .thenReturn(taskMock)
            .thenReturn(null);
    ExecutionTaskWithStrategy executionTask = new ExecutionTaskWithStrategy(dispatcherMock, processStrategyMock);
    when(dispatcherMock.getExecutionTask()).thenReturn(executionTask);
    doAnswer(invocation -> {
        invocation.getArgumentAt(0, ITaskExecutionState.class).execute();
        return null;
    }).when(processStrategyMock).process(any());
    executionTask.execute();
    verify(taskMock).execute();
}