    @Test
    public void returnResult() {

        OngoingMissionRun.ReturnHelper<Result> resultReturnHelper = run.returnResult();

        assertNotNull(resultReturnHelper.whenFinished());
        assertThat(resultReturnHelper.whenFinished(), instanceOf(Result.class));
        assertEquals(Result.SUCCESS, resultReturnHelper.whenFinished());

        assertNotNull(resultReturnHelper.whenFinished(Duration.ofMillis(100)));
        assertThat(resultReturnHelper.whenFinished(Duration.ofMillis(100)), instanceOf(Result.class));
        assertEquals(Result.SUCCESS, resultReturnHelper.whenFinished(Duration.ofMillis(100)));

        assertNotNull(resultReturnHelper.when(runStateEquals(RunState.PAUSED).or(runStateEquals(RunState.FINISHED))));
        assertThat(resultReturnHelper.when(runStateEquals(RunState.PAUSED).or(runStateEquals(RunState.FINISHED))),
                instanceOf(Result.class));
        assertEquals(Result.SUCCESS, resultReturnHelper.when(runStateEquals(RunState.PAUSED)
                .or(runStateEquals(RunState.FINISHED))));

        assertNotNull(resultReturnHelper.when(runStateEquals(RunState.PAUSED).or(runStateEquals(RunState.FINISHED)),
                Duration.ofMillis(100)));
        assertThat(resultReturnHelper.when(runStateEquals(RunState.PAUSED).or(runStateEquals(RunState.FINISHED)),
                Duration.ofMillis(100)), instanceOf(Result.class));
        assertEquals(Result.SUCCESS, resultReturnHelper.when(runStateEquals(RunState.PAUSED)
                .or(runStateEquals(RunState.FINISHED)), Duration.ofMillis(100)));
    }