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
28 package org.apache.hc.client5.testing.sync;
29
30 import java.net.InetSocketAddress;
31 import java.util.function.Consumer;
32
33 import org.apache.hc.client5.testing.extension.sync.ClientProtocolLevel;
34 import org.apache.hc.client5.testing.extension.sync.TestClient;
35 import org.apache.hc.client5.testing.extension.sync.TestClientBuilder;
36 import org.apache.hc.client5.testing.extension.sync.TestClientResources;
37 import org.apache.hc.client5.testing.extension.sync.TestServer;
38 import org.apache.hc.client5.testing.extension.sync.TestServerBootstrap;
39 import org.apache.hc.core5.http.HttpHost;
40 import org.apache.hc.core5.http.URIScheme;
41 import org.apache.hc.core5.util.Timeout;
42 import org.junit.jupiter.api.extension.RegisterExtension;
43
44 abstract class AbstractIntegrationTestBase {
45
46 public static final Timeout TIMEOUT = Timeout.ofMinutes(1);
47
48 @RegisterExtension
49 private final TestClientResources testResources;
50
51 protected AbstractIntegrationTestBase(final URIScheme scheme, final ClientProtocolLevel clientProtocolLevel) {
52 this.testResources = new TestClientResources(scheme, clientProtocolLevel, TIMEOUT);
53 }
54
55 public URIScheme scheme() {
56 return testResources.scheme();
57 }
58
59 public ClientProtocolLevel getClientProtocolLevel() {
60 return testResources.getClientProtocolLevel();
61 }
62
63 public void configureServer(final Consumer<TestServerBootstrap> serverCustomizer) {
64 testResources.configureServer(serverCustomizer);
65 }
66
67 public HttpHost startServer() throws Exception {
68 final TestServer server = testResources.server();
69 final InetSocketAddress inetSocketAddress = server.start();
70 return new HttpHost(testResources.scheme().id, "localhost", inetSocketAddress.getPort());
71 }
72
73 public void configureClient(final Consumer<TestClientBuilder> clientCustomizer) {
74 testResources.configureClient(clientCustomizer);
75 }
76
77 public TestClient client() throws Exception {
78 return testResources.client();
79 }
80
81 }