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