KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jivesoftware > smack > filter > PacketTypeFilterTest


1 /**
2  * $RCSfile$
3  * $Revision: 2070 $
4  * $Date: 2003-08-26 16:21:18 -0300 (Tue, 26 Aug 2003) $
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.filter;
54
55 import junit.framework.TestCase;
56 import org.jivesoftware.smack.packet.*;
57
58 /**
59  * Test cases for the PacketTypeFilter class.
60  */

61 public class PacketTypeFilterTest extends TestCase {
62
63     private class Dummy {}
64
65     private class InnerClassDummy {
66         public class DummyPacket extends Packet {
67             public String JavaDoc toXML() {
68                 return null;
69             }
70         }
71         public DummyPacket getInnerInstance() {
72             return new DummyPacket();
73         }
74     }
75
76     private static class StaticInnerClassDummy {
77         public static class StaticDummyPacket extends Packet {
78             public String JavaDoc toXML() {
79                 return null;
80             }
81         }
82         public static StaticDummyPacket getInnerInstance() {
83             return new StaticDummyPacket();
84         }
85     }
86
87     /**
88      * Test case for the constructor of PacketTypeFilter objects.
89      */

90     public void testConstructor() {
91         // Test a class that is not a subclass of Packet
92
try {
93             new PacketTypeFilter(Dummy.class);
94             fail("Parameter must be a subclass of Packet.");
95         }
96         catch (IllegalArgumentException JavaDoc e) {}
97
98         // Test a class that is a subclass of Packet
99
try {
100             new PacketTypeFilter(MockPacket.class);
101         }
102         catch (IllegalArgumentException JavaDoc e) {
103             fail();
104         }
105
106         // Test another class which is a subclass of Packet
107
try {
108             new PacketTypeFilter(IQ.class);
109         }
110         catch (IllegalArgumentException JavaDoc e) {
111             fail();
112         }
113
114         // Test an internal class which is a subclass of Packet
115
try {
116             new PacketTypeFilter(InnerClassDummy.DummyPacket.class);
117         }
118         catch (IllegalArgumentException JavaDoc e) {
119             fail();
120         }
121
122         // Test an internal static class which is a static subclass of Packet
123
try {
124             new PacketTypeFilter(StaticInnerClassDummy.StaticDummyPacket.class);
125         }
126         catch (IllegalArgumentException JavaDoc e) {
127             fail();
128         }
129     }
130
131     /**
132      * Test case to test the accept() method of PacketTypeFilter objects.
133      */

134     public void testAccept() {
135         Packet packet = new MockPacket();
136         PacketTypeFilter filter = new PacketTypeFilter(MockPacket.class);
137         assertTrue(filter.accept(packet));
138
139         packet = (new InnerClassDummy()).getInnerInstance();
140         filter = new PacketTypeFilter(InnerClassDummy.DummyPacket.class);
141         assertTrue(filter.accept(packet));
142
143         packet = StaticInnerClassDummy.getInnerInstance();
144         filter = new PacketTypeFilter(StaticInnerClassDummy.StaticDummyPacket.class);
145         assertTrue(filter.accept(packet));
146     }
147 }
148
Popular Tags