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.http.impl.routing;
29
30 import java.net.InetAddress;
31 import java.net.URI;
32
33 import org.apache.hc.client5.http.impl.DefaultSchemePortResolver;
34 import org.apache.hc.client5.http.routing.RoutingSupport;
35 import org.apache.hc.core5.http.HttpHost;
36 import org.apache.hc.core5.http.HttpRequest;
37 import org.apache.hc.core5.http.ProtocolException;
38 import org.apache.hc.core5.http.message.BasicHttpRequest;
39 import org.apache.hc.core5.net.URIAuthority;
40 import org.hamcrest.CoreMatchers;
41 import org.junit.Assert;
42 import org.junit.Test;
43
44 public class TestRoutingSupport {
45
46 @Test
47 public void testDetermineHost() throws Exception {
48 final HttpRequest request1 = new BasicHttpRequest("GET", "/");
49 final HttpHost host1 = RoutingSupport.determineHost(request1);
50 Assert.assertThat(host1, CoreMatchers.nullValue());
51
52 final HttpRequest request2 = new BasicHttpRequest("GET", new URI("https://somehost:8443/"));
53 final HttpHost host2 = RoutingSupport.determineHost(request2);
54 Assert.assertThat(host2, CoreMatchers.equalTo(new HttpHost("https", "somehost", 8443)));
55 }
56
57 @Test(expected = ProtocolException.class)
58 public void testDetermineHostMissingScheme() throws Exception {
59 final HttpRequest request1 = new BasicHttpRequest("GET", "/");
60 request1.setAuthority(new URIAuthority("host"));
61 RoutingSupport.determineHost(request1);
62 }
63
64 @Test
65 public void testNormalizeHost() throws Exception {
66 Assert.assertEquals(new HttpHost("http", "somehost", 80),
67 RoutingSupport.normalize(
68 new HttpHost("http", "somehost", -1),
69 DefaultSchemePortResolver.INSTANCE));
70 Assert.assertEquals(new HttpHost("https", "somehost", 443),
71 RoutingSupport.normalize(
72 new HttpHost("https", "somehost", -1),
73 DefaultSchemePortResolver.INSTANCE));
74 Assert.assertEquals(new HttpHost("http", InetAddress.getLocalHost(), "localhost", 80),
75 RoutingSupport.normalize(
76 new HttpHost("http", InetAddress.getLocalHost(), "localhost", -1),
77 DefaultSchemePortResolver.INSTANCE));
78 Assert.assertEquals(new HttpHost("http", "somehost", 8080),
79 RoutingSupport.normalize(
80 new HttpHost("http", "somehost", 8080),
81 DefaultSchemePortResolver.INSTANCE));
82 }
83
84 }