1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 package org.apache.hc.client5.testing.async;
28
29 import java.util.Arrays;
30 import java.util.Collection;
31
32 import org.apache.hc.client5.http.config.RequestConfig;
33 import org.apache.hc.client5.http.impl.async.CloseableHttpAsyncClient;
34 import org.apache.hc.client5.http.impl.async.H2AsyncClientBuilder;
35 import org.apache.hc.client5.testing.SSLTestContexts;
36 import org.apache.hc.core5.http.HttpHost;
37 import org.apache.hc.core5.http.URIScheme;
38 import org.apache.hc.core5.http.nio.ssl.BasicClientTlsStrategy;
39 import org.apache.hc.core5.http2.config.H2Config;
40 import org.junit.Rule;
41 import org.junit.rules.ExternalResource;
42 import org.junit.runner.RunWith;
43 import org.junit.runners.Parameterized;
44
45 @RunWith(Parameterized.class)
46 public class TestH2Async extends AbstractHttpAsyncFundamentalsTest<CloseableHttpAsyncClient> {
47
48 @Parameterized.Parameters(name = "HTTP/2 {0}")
49 public static Collection<Object[]> protocols() {
50 return Arrays.asList(new Object[][]{
51 { URIScheme.HTTP },
52 { URIScheme.HTTPS }
53 });
54 }
55
56 protected H2AsyncClientBuilder clientBuilder;
57
58 @Rule
59 public ExternalResource clientResource = new ExternalResource() {
60
61 @Override
62 protected void before() throws Throwable {
63 clientBuilder = H2AsyncClientBuilder.create()
64 .setDefaultRequestConfig(RequestConfig.custom()
65 .setConnectionRequestTimeout(TIMEOUT)
66 .setConnectTimeout(TIMEOUT)
67 .build())
68 .setTlsStrategy(new BasicClientTlsStrategy(SSLTestContexts.createClientSSLContext()));
69 }
70
71 };
72
73 public TestH2Async(final URIScheme scheme) {
74 super(scheme);
75 }
76
77 @Override
78 protected CloseableHttpAsyncClient createClient() {
79 return clientBuilder.build();
80 }
81
82 @Override
83 public HttpHost start() throws Exception {
84 return super.start(null, H2Config.DEFAULT);
85 }
86
87 }