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.extension.sync;
29
30 import java.io.IOException;
31
32 import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
33 import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse;
34 import org.apache.hc.client5.http.io.HttpClientConnectionManager;
35 import org.apache.hc.core5.http.ClassicHttpRequest;
36 import org.apache.hc.core5.http.HttpHost;
37 import org.apache.hc.core5.http.protocol.HttpContext;
38 import org.apache.hc.core5.io.CloseMode;
39 import org.apache.hc.core5.util.Args;
40
41 public class TestClient extends CloseableHttpClient {
42
43 private final CloseableHttpClient client;
44 private final HttpClientConnectionManager connectionManager;
45
46 public TestClient(final CloseableHttpClient client,
47 final HttpClientConnectionManager connectionManager) {
48 this.client = Args.notNull(client, "Client");
49 this.connectionManager = Args.notNull(connectionManager, "Connection manager");
50 }
51
52 @Override
53 public void close(final CloseMode closeMode) {
54 client.close(closeMode);
55 }
56
57 @Override
58 public void close() throws IOException {
59 client.close();
60 }
61
62 @Override
63 protected CloseableHttpResponse doExecute(final HttpHost target, final ClassicHttpRequest request, final HttpContext context) throws IOException {
64 return CloseableHttpResponse.adapt(client.executeOpen(target, request, context));
65 }
66
67 @SuppressWarnings("unchecked")
68 public <T extends CloseableHttpClient> T getImplementation() {
69 return (T) client;
70 }
71
72 @SuppressWarnings("unchecked")
73 public <T extends HttpClientConnectionManager> T getConnectionManager() {
74 return (T) connectionManager;
75 }
76
77 }