@Override
    public CompletableFuture<V> whenComplete(BiConsumer<? super V, ? super Throwable> action) {
        return future.handleAsync(new WhenCompleteAdapter(action), defaultExecutor());
    }
@Test
    public void whenComplete() {
        CompletableFuture<String> nextStage = delegatingFuture.whenComplete((v, t) -> assertEquals(DESERIALIZED_VALUE, v));
        invocationFuture.complete(response);

        assertTrueEventually(() -> assertTrue(nextStage.isDone()));
        assertEquals(DESERIALIZED_VALUE, nextStage.join());
    }