@Override
  public ListenableFuture<HttpResponse> sendAsync(HttpRequest httpRequest) {
    return sendAsync(httpRequest, null);
  }
@Test
  public void sendAsync_whenRequestFailed_returnsFutureWithException() {
    ListenableFuture<HttpResponse> responseFuture =
        httpClient.sendAsync(get("http://unknownhost/path").withEmptyHeaders().build());

    ExecutionException ex = assertThrows(ExecutionException.class, responseFuture::get);
    assertThat(ex).hasCauseThat().isInstanceOf(IOException.class);
  }