KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jivesoftware > smack > PacketReaderTest


1 /**
2 * $RCSfile$
3 * $Revision: 2448 $
4 * $Date: 2005-01-12 00:03:32 -0300 (Wed, 12 Jan 2005) $
5 *
6 * Copyright (C) 2002-2003 Jive Software. All rights reserved.
7 * ====================================================================
8 * The Jive Software License (based on Apache Software License, Version 1.1)
9 *
10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions
12 * are met:
13 *
14 * 1. Redistributions of source code must retain the above copyright
15 * notice, this list of conditions and the following disclaimer.
16 *
17 * 2. Redistributions in binary form must reproduce the above copyright
18 * notice, this list of conditions and the following disclaimer in
19 * the documentation and/or other materials provided with the
20 * distribution.
21 *
22 * 3. The end-user documentation included with the redistribution,
23 * if any, must include the following acknowledgment:
24 * "This product includes software developed by
25 * Jive Software (http://www.jivesoftware.com)."
26 * Alternately, this acknowledgment may appear in the software itself,
27 * if and wherever such third-party acknowledgments normally appear.
28 *
29 * 4. The names "Smack" and "Jive Software" must not be used to
30 * endorse or promote products derived from this software without
31 * prior written permission. For written permission, please
32 * contact webmaster@jivesoftware.com.
33 *
34 * 5. Products derived from this software may not be called "Smack",
35 * nor may "Smack" appear in their name, without prior written
36 * permission of Jive Software.
37 *
38 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
39 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
40 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
41 * DISCLAIMED. IN NO EVENT SHALL JIVE SOFTWARE OR
42 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
43 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
44 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
45 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
46 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
47 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
48 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
49 * SUCH DAMAGE.
50 * ====================================================================
51 */

52
53 package org.jivesoftware.smack;
54
55 import org.jivesoftware.smack.filter.*;
56 import org.jivesoftware.smack.packet.*;
57 import org.jivesoftware.smack.test.SmackTestCase;
58
59
60 public class PacketReaderTest extends SmackTestCase {
61
62     /**
63      * Constructor for PacketReaderTest.
64      * @param arg0
65      */

66     public PacketReaderTest(String JavaDoc arg0) {
67         super(arg0);
68     }
69
70     /**
71      * Verify that when Smack receives a "not implemented IQ" answers with an IQ packet
72      * with error code 501.
73      */

74     public void testIQNotImplemented() {
75         
76         // Create a new type of IQ to send. The new IQ will include a
77
// non-existant namespace to cause the "feature-not-implemented" answer
78
IQ iqPacket = new IQ() {
79             public String JavaDoc getChildElementXML() {
80                 return "<query xmlns=\"my:ns:test\"/>";
81             }
82         };
83         iqPacket.setTo(getFullJID(1));
84         iqPacket.setType(IQ.Type.GET);
85
86         // Send the IQ and wait for the answer
87
PacketCollector collector = getConnection(0).createPacketCollector(
88                 new PacketIDFilter(iqPacket.getPacketID()));
89         getConnection(0).sendPacket(iqPacket);
90         IQ response = (IQ)collector.nextResult(SmackConfiguration.getPacketReplyTimeout());
91         if (response == null) {
92             fail("No response from the other user.");
93         }
94         assertEquals("The received IQ is not of type ERROR", IQ.Type.ERROR, response.getType());
95         assertEquals("The error code is not 501", 501, response.getError().getCode());
96         collector.cancel();
97     }
98
99     protected int getMaxConnections() {
100         return 2;
101     }
102 }
103
Popular Tags