public static <T> @NonNull CompletableFutureSubject<T> assertThat(
            final @Nullable CompletableFuture<? extends @NonNull T> actual
    ) {
        return assertAbout(CompletableFutureSubject.<T>completableFuture()).that(actual);
    }
Subject for assertions about completable futures. Futures are join()ed to get
results or exceptions, and {@link CompletionException}'s cause is unwrapped to
{@link #failure()}. Any other exceptions thrown by join() are unexpected failures.
This class also does not properly handle futures where null is a successful result.

@param <T> future result type
cloud-core/src/test/java/org/incendo/cloud/truth/CompletableFutureSubject.java