View Javadoc
1   /*
2    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
3    * The software in this package is published under the terms of the CPAL v1.0
4    * license, a copy of which has been included with this distribution in the
5    * LICENSE.txt file.
6    */
7   package org.mule.transport.jms;
8   
9   import org.mule.api.endpoint.EndpointURI;
10  import org.mule.endpoint.MuleEndpointURI;
11  import org.mule.tck.junit4.AbstractMuleContextTestCase;
12  
13  import org.junit.Test;
14  
15  import static org.junit.Assert.assertEquals;
16  import static org.junit.Assert.assertNotNull;
17  import static org.junit.Assert.assertNull;
18  
19  public class JmsEndpointTestCase extends AbstractMuleContextTestCase
20  {
21  
22      @Test
23      public void testWithoutFullUrl() throws Exception
24      {
25          EndpointURI url = new MuleEndpointURI("jms:/my.queue", muleContext);
26          url.initialise();
27          assertEquals("jms", url.getScheme());
28          assertEquals("my.queue", url.getAddress());
29          assertNull(url.getEndpointName());
30          assertEquals("jms:/my.queue", url.toString());
31      }
32  
33      @Test
34      public void testFullUrlWithSlashes() throws Exception
35      {
36          EndpointURI url = new MuleEndpointURI("jms://my/queue", muleContext);
37          url.initialise();
38          assertEquals("jms", url.getScheme());
39          assertEquals("my/queue", url.getAddress());
40          assertNull(url.getEndpointName());
41          assertEquals("jms://my/queue", url.toString());
42      }
43  
44      @Test
45      public void testWithoutFullUrlAndEndpointName() throws Exception
46      {
47          EndpointURI url = new MuleEndpointURI("jms:/my.queue?endpointName=jmsProvider", muleContext);
48          url.initialise();
49          assertEquals("jms", url.getScheme());
50          assertEquals("my.queue", url.getAddress());
51          assertNotNull(url.getEndpointName());
52          assertEquals("jmsProvider", url.getEndpointName());
53          assertEquals("jms:/my.queue?endpointName=jmsProvider", url.toString());
54      }
55  
56      @Test
57      public void testJmsUrl() throws Exception
58      {
59          EndpointURI url = new MuleEndpointURI("jms://queue1?endpointName=jmsProvider", muleContext);
60          url.initialise();
61          assertEquals("jms", url.getScheme());
62          assertEquals("queue1", url.getAddress());
63          assertEquals("jmsProvider", url.getEndpointName());
64          assertEquals("jms://queue1?endpointName=jmsProvider", url.toString());
65      }
66  
67  
68      @Test
69      public void testJmsTopic() throws Exception
70      {
71          EndpointURI url = new MuleEndpointURI("jms://topic:topic1", muleContext);
72          url.initialise();
73          assertEquals("jms", url.getScheme());
74          assertEquals("topic1", url.getAddress());
75          assertEquals("topic", url.getResourceInfo());
76          assertEquals(null, url.getEndpointName());
77          assertEquals("jms://topic:topic1", url.toString());
78      }
79  
80      @Test
81      public void testJmsTopicWithProvider() throws Exception
82      {
83          EndpointURI url = new MuleEndpointURI("jms://topic:topic1?endpointName=jmsProvider", muleContext);
84          url.initialise();
85          assertEquals("jms", url.getScheme());
86          assertEquals("topic1", url.getAddress());
87          assertEquals("jmsProvider", url.getEndpointName());
88          assertEquals("topic", url.getResourceInfo());
89          assertEquals("jms://topic:topic1?endpointName=jmsProvider", url.toString());
90      }
91  
92      @Test
93      public void testJmsTopicWithUserInfo() throws Exception
94      {
95          EndpointURI url = new MuleEndpointURI("jms://user:password@topic:topic1", muleContext);
96          url.initialise();
97          assertEquals("jms", url.getScheme());
98          assertEquals("topic1", url.getAddress());
99          assertEquals("topic", url.getResourceInfo());
100         assertEquals("user:password", url.getUserInfo());
101         assertEquals("user", url.getUser());
102         assertEquals("password", url.getPassword());
103         assertEquals("jms://user:****@topic:topic1", url.toString());
104     }
105 
106     @Test
107     public void testJmsTopicWithUserInfoAndProvider() throws Exception
108     {
109         EndpointURI url = new MuleEndpointURI("jms://user:password@topic:topic1?endpointName=jmsProvider", muleContext);
110         url.initialise();
111         assertEquals("jms", url.getScheme());
112         assertEquals("topic1", url.getAddress());
113         assertEquals("jmsProvider", url.getEndpointName());
114         assertEquals("topic", url.getResourceInfo());
115         assertEquals("user:password", url.getUserInfo());
116         assertEquals("user", url.getUser());
117         assertEquals("password", url.getPassword());
118         assertEquals("jms://user:****@topic:topic1?endpointName=jmsProvider", url.toString());
119     }
120 
121     @Test
122     public void testJmsDestWithSlashesAndUserInfoUsingAddressParam() throws Exception
123     {
124         EndpointURI url = new MuleEndpointURI("jms://user:password@?address=/myQueues/myQueue", muleContext);
125         url.initialise();
126         assertEquals("jms", url.getScheme());
127         assertEquals("/myQueues/myQueue", url.getAddress());
128         assertEquals("user:password", url.getUserInfo());
129         assertEquals("user", url.getUser());
130         assertEquals("password", url.getPassword());
131         assertEquals("jms://user:****@?address=/myQueues/myQueue", url.toString());
132     }
133 
134     @Test
135     public void testJmsDestWithSlashesAndUserInfo() throws Exception
136     {
137         EndpointURI url = new MuleEndpointURI("jms://user:password@myQueues/myQueue", muleContext);
138         url.initialise();
139         assertEquals("jms", url.getScheme());
140         assertEquals("myQueues/myQueue", url.getAddress());
141         assertEquals("user:password", url.getUserInfo());
142         assertEquals("user", url.getUser());
143         assertEquals("password", url.getPassword());
144         assertEquals("jms://user:****@myQueues/myQueue", url.toString());
145     }
146 
147     @Test
148     public void testJmsTopicDestinationsWithAddressParam() throws Exception
149     {
150         EndpointURI url = new MuleEndpointURI("jms:topic://?address=[[testgroup]]test.topic", muleContext);
151         url.initialise();
152         assertEquals("jms", url.getScheme());
153         assertEquals("[[testgroup]]test.topic", url.getAddress());
154         assertEquals("topic", url.getResourceInfo());
155         assertEquals("jms://?address=[[testgroup]]test.topic", url.toString());
156     }
157 
158     @Test
159     public void testJmsQueueDestinationsWithAddressParam() throws Exception
160     {
161         EndpointURI url = new MuleEndpointURI("jms://?address=[[testgroup]]test.queue", muleContext);
162         url.initialise();
163         assertEquals("jms", url.getScheme());
164         assertEquals("[[testgroup]]test.queue", url.getAddress());
165         assertNull( url.getResourceInfo());
166         assertEquals("jms://?address=[[testgroup]]test.queue", url.toString());
167     }
168 
169     @Test
170     public void testJmsQueueDestinationsWithEncoding() throws Exception
171     {
172         EndpointURI url = new MuleEndpointURI("jms://%5B%5Btestgroup%5D%5Dtest.queue", muleContext);
173         url.initialise();
174         assertEquals("jms", url.getScheme());
175         assertEquals("[[testgroup]]test.queue", url.getAddress());
176         assertNull( url.getResourceInfo());
177         assertEquals("jms://%5B%5Btestgroup%5D%5Dtest.queue", url.toString());
178     }
179 
180     @Test
181     public void testJmsTopicDestinationsWithEncoding() throws Exception
182     {
183         EndpointURI url = new MuleEndpointURI("jms:topic://%5B%5Btestgroup%5D%5Dtest.topic", muleContext);
184         url.initialise();
185         assertEquals("jms", url.getScheme());
186         assertEquals("[[testgroup]]test.topic", url.getAddress());
187         assertEquals("topic", url.getResourceInfo());
188         assertEquals("jms://%5B%5Btestgroup%5D%5Dtest.topic", url.toString());
189     }
190 
191     @Test
192     public void testJmsLegacyTopicDestinationsWithEncoding() throws Exception
193     {
194         EndpointURI url = new MuleEndpointURI("jms://topic:%5B%5Btestgroup%5D%5Dtest.topic", muleContext);
195         url.initialise();
196         assertEquals("jms", url.getScheme());
197         assertEquals("[[testgroup]]test.topic", url.getAddress());
198         assertEquals("topic", url.getResourceInfo());
199         assertEquals("jms://topic:%5B%5Btestgroup%5D%5Dtest.topic", url.toString());
200     }
201 
202 
203 }