1
2
3
4
5
6
7
8
9
10
11 package org.mule.endpoint;
12
13 import org.mule.api.MuleContext;
14 import org.mule.api.endpoint.EndpointURI;
15 import org.mule.tck.junit4.AbstractMuleTestCase;
16
17 import java.util.HashMap;
18 import java.util.Map;
19
20 import org.junit.Test;
21
22 import static org.junit.Assert.assertEquals;
23
24 public class URIBuilderTestCase extends AbstractMuleTestCase
25 {
26
27 private static final Map<String, String> queries;
28
29 static
30 {
31 queries = new HashMap<String, String>();
32 queries.put("aname", "avalue");
33 queries.put("bname", "bvalue");
34 }
35
36 protected MuleContext unusedMuleContext = null;
37
38 @Test
39 public void testAddressForProtocol()
40 {
41 URIBuilder uri = new URIBuilder(unusedMuleContext);
42 uri.setProtocol("foo");
43 uri.setAddress("foo://bar");
44 assertEquals("foo://bar", uri.toString());
45 }
46
47 @Test
48 public void testAddressForMeta()
49 {
50 URIBuilder uri = new URIBuilder(unusedMuleContext);
51 uri.setMeta("foo");
52 uri.setAddress("baz://bar");
53 assertEquals("foo:baz://bar", uri.toString());
54 }
55
56 @Test
57 public void testQueriesWithAddress()
58 {
59 URIBuilder uri = new URIBuilder(unusedMuleContext);
60 uri.setAddress("foo://bar");
61 uri.setQueryMap(queries);
62 assertEquals("foo://bar?aname=avalue&bname=bvalue", uri.toString());
63 }
64
65
66
67 @Test
68 public void testLiteralQueries()
69 {
70 URIBuilder uri1 = new URIBuilder(unusedMuleContext);
71 uri1.setAddress("foo://bar?cname=cvalue&aname=anothervalue");
72 uri1.setQueryMap(queries);
73 assertEquals("foo://bar?cname=cvalue&aname=avalue&bname=bvalue", uri1.toString());
74 URIBuilder uri2 = new URIBuilder(unusedMuleContext);
75 uri2.setQueryMap(queries);
76 uri2.setAddress("foo://bar?cname=cvalue&aname=anothervalue");
77 assertEquals("foo://bar?cname=cvalue&aname=avalue&bname=bvalue", uri2.toString());
78 }
79
80 @Test
81 public void testNullQueries()
82 {
83 URIBuilder uri1 = new URIBuilder(unusedMuleContext);
84 uri1.setAddress("foo://bar?cname&aname");
85 uri1.setQueryMap(queries);
86 assertEquals("foo://bar?cname&aname=avalue&bname=bvalue", uri1.toString());
87 }
88
89 @Test
90 public void testFromString()
91 {
92 URIBuilder uri = new URIBuilder("test://bar", unusedMuleContext);
93 EndpointURI endpointURI = uri.getEndpoint();
94 assertEquals("test://bar", endpointURI.getUri().toString());
95 assertEquals("test", endpointURI.getSchemeMetaInfo());
96 uri = new URIBuilder("meta:test://bar", unusedMuleContext);
97 endpointURI = uri.getEndpoint();
98 assertEquals("test://bar", endpointURI.getUri().toString());
99 assertEquals("meta", endpointURI.getSchemeMetaInfo());
100 }
101
102 @Test
103 public void testMultiValueParam()
104 {
105
106 URIBuilder uri = new URIBuilder("test://bar?aname=avalue&aname=bvalue&aname=cvalue", unusedMuleContext);
107 EndpointURI endpointURI = uri.getEndpoint();
108 assertEquals("test://bar?aname=avalue&aname=bvalue&aname=cvalue", endpointURI.getUri().toString());
109
110
111 Map<String, String> tq = new HashMap<String, String>();
112 tq.put("aname", "zvalue");
113 tq.put("dname", "dvalue");
114
115 uri = new URIBuilder("test://bar?aname=avalue&aname=bvalue&aname=cvalue", unusedMuleContext);
116 uri.setQueryMap(tq);
117 endpointURI = uri.getEndpoint();
118 assertEquals("test://bar?aname=zvalue&aname=bvalue&aname=cvalue&dname=dvalue", endpointURI.getUri().toString());
119 }
120
121 }