View Javadoc

1   /*
2    * $Id: MuleEndpointURITestCase.java 22377 2011-07-11 12:41:42Z dirk.olmes $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
9    */
10  
11  package org.mule.endpoint;
12  
13  import org.mule.api.MuleException;
14  import org.mule.tck.junit4.AbstractMuleContextTestCase;
15  
16  import java.util.Properties;
17  
18  import org.junit.Test;
19  
20  import static org.junit.Assert.assertEquals;
21  import static org.junit.Assert.assertNull;
22  
23  public class MuleEndpointURITestCase extends AbstractMuleContextTestCase
24  {
25      @Test
26      public void testEquality() throws Exception
27      {
28          MuleEndpointURI u1 = new MuleEndpointURI("test://mule:secret@jabber.org:6666/ross@jabber.org", muleContext);
29          MuleEndpointURI u2 = new MuleEndpointURI("test://mule:secret@jabber.org:6666/ross@jabber.org", muleContext);
30  
31          assertEquals(u1, u2);
32          assertEquals(u2, u1);
33          assertEquals(u1.hashCode(), u2.hashCode());
34          assertEquals(u2.hashCode(), u1.hashCode());
35  
36          MuleEndpointURI u3 = new MuleEndpointURI(u1);
37          assertEquals(u1, u3);
38          assertEquals(u2, u3);
39          assertEquals(u3, u1);
40          assertEquals(u3, u2);
41          assertEquals(u1.hashCode(), u3.hashCode());
42          assertEquals(u2.hashCode(), u3.hashCode());
43      }
44  
45      @Test
46      public void testUriWithHostOnly() throws Exception
47      {
48          MuleEndpointURI uri = buildEndpointUri("test://theHost");
49          assertSchemeAndHostAndEnpointName(uri);
50          assertEquals(-1, uri.getPort());
51          assertEquals(0, uri.getParams().size());
52      }
53  
54      @Test
55      public void testUriWithHostAndPort() throws Exception
56      {
57          MuleEndpointURI uri = buildEndpointUri("test://theHost:9999");
58          assertSchemeAndHostAndEnpointName(uri);
59          assertEquals(9999, uri.getPort());
60          assertEquals(0, uri.getParams().size());
61      }
62      
63      @Test
64      public void testUriWithUsername() throws Exception
65      {
66          MuleEndpointURI uri = buildEndpointUri("test://theUser@theHost");
67          assertSchemeAndHostAndEnpointName(uri);
68          assertEquals(-1, uri.getPort());
69          assertEquals("theUser", uri.getUser());
70          assertEquals(0, uri.getParams().size());
71      }
72          
73      @Test
74      public void testUriWithUsernameAndPassword() throws Exception
75      {
76          MuleEndpointURI uri = buildEndpointUri("test://theUser:secret@theHost");
77          assertSchemeAndHostAndEnpointName(uri);
78          assertEquals(-1, uri.getPort());
79          assertEquals("theUser", uri.getUser());
80          assertEquals("secret", uri.getPassword());
81          assertEquals("theUser:secret", uri.getUserInfo());
82          assertEquals(0, uri.getParams().size());
83      }
84      
85      @Test
86      public void testUriWithUsernameContainingAtSignAndPassword() throws Exception
87      {
88          MuleEndpointURI uri = buildEndpointUri("test://theUser%40theEmailHost:secret@theHost");
89          assertSchemeAndHostAndEnpointName(uri);
90          assertEquals(-1, uri.getPort());
91          assertEquals("theUser@theEmailHost", uri.getUser());
92          assertEquals("secret", uri.getPassword());
93          assertEquals(0, uri.getParams().size());
94      }
95  
96      @Test
97      public void testUriWithUsernameAndPasswordContainingAtSign() throws Exception
98      {
99          MuleEndpointURI uri = buildEndpointUri("test://theUser:secret%40secret@theHost");
100         assertSchemeAndHostAndEnpointName(uri);
101         assertEquals(-1, uri.getPort());
102         assertEquals("theUser", uri.getUser());
103         assertEquals("secret@secret", uri.getPassword());
104         assertEquals(0, uri.getParams().size());
105     }
106 
107     @Test
108     public void testUriWithPath() throws Exception
109     {
110         MuleEndpointURI uri = buildEndpointUri("test://theHost/thePath");
111         assertSchemeAndHostAndEnpointName(uri);
112         assertEquals(-1, uri.getPort());
113         assertEquals("/thePath", uri.getPath());
114         assertEquals(0, uri.getParams().size());
115     }
116     
117     @Test
118     public void testUriWithQuery() throws Exception
119     {
120         MuleEndpointURI uri = buildEndpointUri("test://theHost?query=xxx");
121         assertSchemeAndHostAndEnpointName(uri);
122         assertEquals(-1, uri.getPort());
123         assertEquals("query=xxx", uri.getQuery());
124         
125         Properties params = uri.getParams();
126         assertEquals(1, params.size());
127         assertEquals("xxx", params.getProperty("query"));
128     }
129     
130     @Test
131     public void testUriWithQueryContainingAtSign() throws Exception
132     {
133         MuleEndpointURI uri = buildEndpointUri("test://theHost?query=xxx@yyy");
134         assertSchemeAndHostAndEnpointName(uri);
135         assertEquals(-1, uri.getPort());
136         assertEquals("query=xxx@yyy", uri.getQuery());
137         
138         Properties params = uri.getParams();
139         assertEquals(1, params.size());
140         assertEquals("xxx@yyy", params.getProperty("query"));
141     }
142 
143     @Test
144     public void testUriWithPathAndQuery() throws Exception
145     {
146         MuleEndpointURI uri = buildEndpointUri("test://theHost/thePath?query=xxx");
147         assertSchemeAndHostAndEnpointName(uri);
148         assertEquals(-1, uri.getPort());
149         assertEquals("/thePath", uri.getPath());
150         assertEquals("query=xxx", uri.getQuery());
151         
152         Properties params = uri.getParams();
153         assertEquals(1, params.size());
154         assertEquals("xxx", params.getProperty("query"));
155     }
156     
157     @Test
158     public void testPasswordMasking() throws Exception
159     {
160         MuleEndpointURI uri = new MuleEndpointURI("test://theUser:password@theHost", muleContext);
161         assertEquals("test://theUser:****@theHost", uri.toString());
162     }
163     
164     @Test
165     public void testPasswordMaskingWithUsernameContainingAtSign() throws Exception
166     {
167         MuleEndpointURI uri = new MuleEndpointURI("test://theUser%40theEmailHost:password@theHost", muleContext);
168         assertEquals("test://theUser%40theEmailHost:****@theHost", uri.toString());
169     }
170     
171     private MuleEndpointURI buildEndpointUri(String uriString) throws MuleException
172     {
173         MuleEndpointURI uri = new MuleEndpointURI(uriString, muleContext);
174         uri.initialise();
175         return uri;
176     }
177 
178     private void assertSchemeAndHostAndEnpointName(MuleEndpointURI uri)
179     {
180         assertEquals("test", uri.getScheme());
181         assertEquals("theHost", uri.getHost());
182         assertNull(uri.getEndpointName());
183     }
184 }