@Test
@Timeout(value = 300, unit = TimeUnit.MILLISECONDS)
public void testAfterResolved() throws InterruptedException, ExecutionException {

    AtomicInteger check = new AtomicInteger();
    Callable<Integer> callable = () -> {
        check.set(10);
        return 5;
    };
    ScheduledCompletableFuture<Integer> after = scheduler.after(callable, Duration.ofMillis(100));
    Thread.sleep(200);
    assertTrue(after.isDone(), "Scheduled job should finish done");
    assertEquals(10, check.get(), "After CompletableFuture should return correct value");
    assertEquals(5, after.get().intValue(), "After CompletableFuture should return correct value");
}