1   /*
2    * $Id: XmppEndpointTestCase.java 7963 2007-08-21 08:53:15Z dirk.olmes $
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.providers.xmpp;
12  
13  import org.mule.impl.endpoint.MuleEndpointURI;
14  import org.mule.tck.AbstractMuleTestCase;
15  import org.mule.umo.endpoint.MalformedEndpointException;
16  
17  public class XmppEndpointTestCase extends AbstractMuleTestCase
18  {
19      public void testMalformedXmppUrl() throws Exception
20      {
21          try
22          {
23              new MuleEndpointURI("xmpp://mule:secret@jabber.org");
24              fail("There is no path set on the endpoint");
25          }
26          catch (MalformedEndpointException e)
27          {
28              // expected
29          }
30      }
31  
32      public void testXmppUrlWithPortAndToChat() throws Exception
33      {
34          MuleEndpointURI endpointUri = new MuleEndpointURI(
35              "xmpp://mule:secret@jabber.org:6666/ross@jabber.org");
36          assertEquals("xmpp", endpointUri.getScheme());
37          assertEquals("mule@jabber.org:6666", endpointUri.getAddress());
38          assertNull(endpointUri.getEndpointName());
39          assertEquals(6666, endpointUri.getPort());
40          assertEquals("jabber.org", endpointUri.getHost());
41          assertEquals("mule:secret", endpointUri.getUserInfo());
42          assertEquals("xmpp://mule:secret@jabber.org:6666/ross@jabber.org", endpointUri.toString());
43          assertEquals(0, endpointUri.getParams().size());
44          assertEquals("ross@jabber.org", endpointUri.getPath().substring(1));
45      }
46  
47      public void testXmppUrlWithPortAndToChatWithParam() throws Exception
48      {
49          MuleEndpointURI endpointUri = new MuleEndpointURI(
50              "xmpp://mule:secret@jabber.org:6666/ross@jabber.org?groupChat=true&nickname=ross");
51          assertEquals("xmpp", endpointUri.getScheme());
52          assertEquals("mule@jabber.org:6666", endpointUri.getAddress());
53          assertNull(endpointUri.getEndpointName());
54          assertEquals(6666, endpointUri.getPort());
55          assertEquals("jabber.org", endpointUri.getHost());
56          assertEquals("mule:secret", endpointUri.getUserInfo());
57          assertEquals("xmpp://mule:secret@jabber.org:6666/ross@jabber.org?groupChat=true&nickname=ross",
58              endpointUri.toString());
59          assertEquals(2, endpointUri.getParams().size());
60          assertEquals("ross@jabber.org", endpointUri.getPath().substring(1));
61          assertEquals("true", endpointUri.getParams().get("groupChat"));
62          assertEquals("ross", endpointUri.getParams().get("nickname"));
63      }
64  
65      public void testXmppBadGroupChatParams() throws Exception
66      {
67          try
68          {
69              new MuleEndpointURI("xmpp://mule:secret@jabber.org:6666/ross@jabber.org?groupChat=true");
70              fail("if groupchat is set to true a nickname must be set");
71          }
72          catch (MalformedEndpointException e)
73          {
74              // expected
75          }
76  
77          new MuleEndpointURI("xmpp://mule:secret@jabber.org:6666/ross@jabber.org?groupChat=false");
78      }
79  }