1   /*
2    * $Id: XmppEndpointTestCase.java 10489 2008-01-23 17:53:38Z dfeist $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSource, Inc.  All rights reserved.  http://www.mulesource.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.transport.xmpp;
12  
13  import org.mule.api.lifecycle.InitialisationException;
14  import org.mule.endpoint.MuleEndpointURI;
15  import org.mule.tck.AbstractMuleTestCase;
16  
17  public class XmppEndpointTestCase extends AbstractMuleTestCase
18  {
19      public void testMalformedXmppUrl() throws Exception
20      {
21          try
22          {
23              MuleEndpointURI uri = new MuleEndpointURI("xmpp://mule:secret@jabber.org");
24              uri.initialise();
25              fail("There is no path set on the endpoint");
26          }
27          catch (InitialisationException e)
28          {
29              // expected
30          }
31      }
32  
33      public void testXmppUrlWithPortAndToChat() throws Exception
34      {
35          MuleEndpointURI endpointUri = new MuleEndpointURI(
36              "xmpp://mule:secret@jabber.org:6666/ross@jabber.org");
37          endpointUri.initialise();
38          
39          assertEquals("xmpp", endpointUri.getScheme());
40          assertEquals("mule@jabber.org:6666", endpointUri.getAddress());
41          assertNull(endpointUri.getEndpointName());
42          assertEquals(6666, endpointUri.getPort());
43          assertEquals("jabber.org", endpointUri.getHost());
44          assertEquals("mule:secret", endpointUri.getUserInfo());
45          assertEquals("xmpp://mule:secret@jabber.org:6666/ross@jabber.org", endpointUri.toString());
46          assertEquals(0, endpointUri.getParams().size());
47          assertEquals("ross@jabber.org", endpointUri.getPath().substring(1));
48      }
49  
50      public void testXmppUrlWithPortAndToChatWithParam() throws Exception
51      {
52          MuleEndpointURI endpointUri = new MuleEndpointURI(
53              "xmpp://mule:secret@jabber.org:6666/ross@jabber.org?groupChat=true&nickname=ross");
54          endpointUri.initialise();
55          
56          assertEquals("xmpp", endpointUri.getScheme());
57          assertEquals("mule@jabber.org:6666", endpointUri.getAddress());
58          assertNull(endpointUri.getEndpointName());
59          assertEquals(6666, endpointUri.getPort());
60          assertEquals("jabber.org", endpointUri.getHost());
61          assertEquals("mule:secret", endpointUri.getUserInfo());
62          assertEquals("xmpp://mule:secret@jabber.org:6666/ross@jabber.org?groupChat=true&nickname=ross",
63              endpointUri.toString());
64          assertEquals(2, endpointUri.getParams().size());
65          assertEquals("ross@jabber.org", endpointUri.getPath().substring(1));
66          assertEquals("true", endpointUri.getParams().get("groupChat"));
67          assertEquals("ross", endpointUri.getParams().get("nickname"));
68      }
69  
70      public void testXmppBadGroupChatParams() throws Exception
71      {
72          try
73          {
74              MuleEndpointURI uri = 
75                  new MuleEndpointURI("xmpp://mule:secret@jabber.org:6666/ross@jabber.org?groupChat=true");
76              uri.initialise();
77              
78              fail("if groupchat is set to true a nickname must be set");
79          }
80          catch (InitialisationException e)
81          {
82              // expected
83          }                                             
84  
85          MuleEndpointURI uri = 
86              new MuleEndpointURI("xmpp://mule:secret@jabber.org:6666/ross@jabber.org?groupChat=false");
87          uri.initialise();
88      }
89  }