@Test
public void unwrapAsyncExceptions_unwraps_recursively() {

    // given
    Exception underlyingError = new Exception("bang");
    ExecutionException wrapperEx = new ExecutionException(underlyingError);
    CompletionException doubleWrapperEx = new CompletionException(wrapperEx);
    // expect
    assertThat(cbSpy.unwrapAsyncExceptions(doubleWrapperEx)).isSameAs(underlyingError);
}