1 package com.atlassian.httpclient.api.factory;
2
3 import com.google.common.collect.ImmutableMap;
4 import com.google.common.collect.Lists;
5 import org.junit.Test;
6
7 import java.util.List;
8 import java.util.Map;
9
10 import static org.junit.Assert.assertEquals;
11
12 public class ProxyOptionsTest {
13 @Test
14 public void testProxyOptionBuilderDisablesConfigSettingsWithNoProxyMode() {
15 Map<Scheme, Host> proxyHosts = ImmutableMap.of(Scheme.HTTP, new Host("foo", 8080));
16 Map<Scheme, List<String>> nonProxyHosts = ImmutableMap.of(Scheme.HTTP, Lists.asList("Foo", new String[]{"Bar"}));
17 ProxyOptions opts =
18 ProxyOptions.ProxyOptionsBuilder.create().withProxy(proxyHosts, nonProxyHosts)
19 .withNoProxy()
20 .build();
21
22 assertEquals(ProxyOptions.ProxyMode.NO_PROXY, opts.getProxyMode());
23 assertEquals(0, opts.getProxyHosts().size());
24 assertEquals(0, opts.getNonProxyHosts().size());
25 }
26
27 @Test
28 public void testProxyOptionBuilderDisablesConfigSettingsWithSysPropsMode() {
29 Map<Scheme, Host> proxyHosts = ImmutableMap.of(Scheme.HTTP, new Host("foo", 8080));
30 Map<Scheme, List<String>> nonProxyHosts = ImmutableMap.of(Scheme.HTTP, Lists.asList("Foo", new String[]{"Bar"}));
31 ProxyOptions opts =
32 ProxyOptions.ProxyOptionsBuilder.create().withProxy(proxyHosts, nonProxyHosts)
33 .withDefaultSystemProperties()
34 .build();
35
36 assertEquals(ProxyOptions.ProxyMode.SYSTEM_PROPERTIES, opts.getProxyMode());
37 assertEquals(0, opts.getProxyHosts().size());
38 assertEquals(0, opts.getNonProxyHosts().size());
39 }
40
41 @Test
42 public void testProxyOptionBuilderWithProxyAndNonProxyHostConfig() {
43 Map<Scheme, Host> proxyHosts = ImmutableMap.of(Scheme.HTTP, new Host("foo", 8080));
44 Map<Scheme, List<String>> nonProxyHosts = ImmutableMap.of(Scheme.HTTP, Lists.asList("Foo", new String[]{"Bar"}));
45 ProxyOptions opts =
46 ProxyOptions.ProxyOptionsBuilder.create().withProxy(proxyHosts, nonProxyHosts)
47 .build();
48
49 assertEquals(ProxyOptions.ProxyMode.CONFIGURED, opts.getProxyMode());
50 assertEquals(proxyHosts, opts.getProxyHosts());
51 assertEquals(nonProxyHosts, opts.getNonProxyHosts());
52 }
53
54 @Test
55 public void testProxyOptionBuilderWithProxyConfig() {
56 ProxyOptions opts =
57 ProxyOptions.ProxyOptionsBuilder.create().withProxy(Scheme.HTTP, new Host("foo", 8080))
58 .build();
59
60 assertEquals(ProxyOptions.ProxyMode.CONFIGURED, opts.getProxyMode());
61 assertEquals(new Host("foo", 8080), opts.getProxyHosts().get(Scheme.HTTP));
62 assertEquals(0, opts.getNonProxyHosts().size());
63 }
64
65 }