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.core5.testing.extension;
29
30 import org.apache.hc.core5.testing.SocksProxy;
31 import org.apache.hc.core5.util.TimeValue;
32 import org.junit.jupiter.api.Assertions;
33 import org.junit.jupiter.api.extension.AfterEachCallback;
34 import org.junit.jupiter.api.extension.BeforeEachCallback;
35 import org.junit.jupiter.api.extension.ExtensionContext;
36 import org.slf4j.Logger;
37 import org.slf4j.LoggerFactory;
38
39 public class SocksProxyResource implements BeforeEachCallback, AfterEachCallback {
40
41 private static final Logger LOG = LoggerFactory.getLogger(SocksProxyResource.class);
42
43 private SocksProxy proxy;
44
45 @Override
46 public void beforeEach(final ExtensionContext extensionContext) throws Exception {
47 LOG.debug("Starting up SOCKS proxy");
48 proxy = new SocksProxy();
49 proxy.start();
50 }
51
52 @Override
53 public void afterEach(final ExtensionContext extensionContext) throws Exception {
54 LOG.debug("Shutting down SOCKS proxy");
55 if (proxy != null) {
56 try {
57 proxy.shutdown(TimeValue.ofSeconds(5));
58 } catch (final Exception ignore) {
59 }
60 }
61 }
62
63 public SocksProxy proxy() {
64 Assertions.assertNotNull(proxy);
65 return proxy;
66 }
67
68 }