@Test
    void testRequestCopy() {
        final SimpleHttpRequest request = SimpleHttpRequest.create(Method.GET, URI.create("https://host:3456/stuff?blah")) ;
        request.addHeader("h1", "v1");
        request.addHeader("h1", "v2");
        request.addHeader("h2", "v2");
        request.setVersion(HttpVersion.HTTP_2);

        final SimpleRequestBuilder builder = SimpleRequestBuilder.copy(request);
        Assertions.assertEquals("GET", builder.getMethod());
        Assertions.assertEquals("https", builder.getScheme());
        Assertions.assertEquals(new URIAuthority("host", 3456), builder.getAuthority());
        Assertions.assertEquals("/stuff?blah", builder.getPath());
        Assertions.assertEquals(HttpVersion.HTTP_2, builder.getVersion());
        assertThat(builder.getHeaders(), HeadersMatcher.same(
                new BasicHeader("h1", "v1"), new BasicHeader("h1", "v2"), new BasicHeader("h2", "v2")));
    }
Simple tests for {@link SimpleResponseBuilder} and {@link SimpleRequestBuilder}.
httpclient5/src/test/java/org/apache/hc/client5/http/async/methods/TestSimpleMessageBuilders.java