KickJava   Java API By Example, From Geeks To Geeks.

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


1 /**
2  * $RCSfile$
3  * $Revision: 2136 $
4  * $Date: 2003-10-12 21:40:11 -0300 (Sun, 12 Oct 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  * A test case for the OrFilter class.
60  */

61 public class OrFilterTest extends TestCase {
62
63     public void testNullArgs() {
64         PacketFilter filter = null;
65         try {
66             OrFilter or = new OrFilter(filter, filter);
67             fail("Should have thrown IllegalArgumentException");
68         }
69         catch (IllegalArgumentException JavaDoc e) {
70             assertTrue(true);
71         }
72     }
73
74     public void testAccept() {
75         MockPacketFilter trueFilter = new MockPacketFilter(true);
76         MockPacketFilter falseFilter = new MockPacketFilter(false);
77
78         MockPacket packet = new MockPacket();
79
80         // Testing TT == T
81
OrFilter orFilter = new OrFilter(trueFilter, trueFilter);
82         assertTrue(orFilter.accept(packet));
83
84         // Testing TF = F
85
orFilter = new OrFilter(trueFilter, falseFilter);
86         assertTrue(orFilter.accept(packet));
87
88         // Testing FT = F
89
orFilter = new OrFilter(falseFilter, trueFilter);
90         assertTrue(orFilter.accept(packet));
91
92         // Testing FF = F
93
orFilter = new OrFilter(falseFilter, falseFilter);
94         assertFalse(orFilter.accept(packet));
95
96         // Testing TTTT = T
97
orFilter = new OrFilter(
98             new OrFilter(trueFilter, trueFilter), new OrFilter(trueFilter, trueFilter)
99         );
100         assertTrue(orFilter.accept(packet));
101
102         // Testing TFTT = F
103
orFilter = new OrFilter(
104             new OrFilter(trueFilter, falseFilter), new OrFilter(trueFilter, trueFilter)
105         );
106         assertTrue(orFilter.accept(packet));
107
108         // Testing TTFT = F
109
orFilter = new OrFilter(
110             new OrFilter(trueFilter, trueFilter), new OrFilter(falseFilter, trueFilter)
111         );
112         assertTrue(orFilter.accept(packet));
113
114         // Testing TTTF = F
115
orFilter = new OrFilter(
116             new OrFilter(trueFilter, trueFilter), new OrFilter(trueFilter, falseFilter)
117         );
118         assertTrue(orFilter.accept(packet));
119
120         // Testing FFFF = F
121
orFilter = new OrFilter(
122             new OrFilter(falseFilter, falseFilter), new OrFilter(falseFilter, falseFilter)
123         );
124         assertFalse(orFilter.accept(packet));
125
126         orFilter = new OrFilter();
127         orFilter.addFilter(trueFilter);
128         orFilter.addFilter(trueFilter);
129         orFilter.addFilter(falseFilter);
130         orFilter.addFilter(trueFilter);
131         assertTrue(orFilter.accept(packet));
132     }
133 }
134
Popular Tags