@Test
  void whenReturnTypeIsResponseNoErrorHandling() {
    Map<String, Collection<String>> headers = new LinkedHashMap<>();
    headers.put("Location", Collections.singletonList("http://bar.com"));
    final Response response =
        Response.builder()
            .status(302)
            .reason("Found")
            .headers(headers)
            .request(Request.create(HttpMethod.GET, "/", Collections.emptyMap(), null, Util.UTF_8))
            .body(new byte[0])
            .build();

    ExecutorService execs = Executors.newSingleThreadExecutor();

    // fake client as Client.Default follows redirects.
    TestInterface api =
        AsyncFeign.<Void>builder()
            .client(new AsyncClient.Default<>((request, options) -> response, execs))
            .target(TestInterface.class, "http://localhost:" + server.getPort());

    assertThat(api.response().headers())
        .hasEntrySatisfying(
            "Location",
            value -> {
              assertThat(value).contains("http://bar.com");
            });

    execs.shutdown();
  }
The type of a parameter value may not be the desired type to encode as. Prefer the interface
type.
core/src/test/java/feign/FeignUnderAsyncTest.java