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