public static TaskAndAction createRemoveTask(final TaskId taskId,
                                                 final CompletableFuture<StateUpdater.RemovedTaskResult> future) {
        Objects.requireNonNull(taskId, "Task ID of task to remove is null!");
        Objects.requireNonNull(future, "Future for task to remove is null!");
        return new TaskAndAction(null, taskId, Action.REMOVE, future);
    }
@Test
    public void shouldThrowIfRemoveTaskActionIsCreatedWithNullFuture() {
        final Exception exception = assertThrows(
            NullPointerException.class,
            () -> createRemoveTask(new TaskId(0, 0), null)
        );
        assertTrue(exception.getMessage().contains("Future for task to remove is null!"));
    }