1
2
3
4
5
6
7
8
9
10
11 package org.mule.routing.filters;
12
13 import org.mule.impl.MuleMessage;
14 import org.mule.routing.filters.logic.AndFilter;
15 import org.mule.routing.filters.logic.NotFilter;
16 import org.mule.routing.filters.logic.OrFilter;
17 import org.mule.tck.AbstractMuleTestCase;
18
19 public class LogicFiltersTestCase extends AbstractMuleTestCase
20 {
21
22 public void testAndFilter()
23 {
24 AndFilter filter = new AndFilter();
25 assertNull(filter.getLeftFilter());
26 assertNull(filter.getRightFilter());
27
28
29 assertFalse(filter.accept(new MuleMessage("foo")));
30
31
32 filter.setLeftFilter(new EqualsFilter("foo"));
33 assertFalse(filter.accept(new MuleMessage("foo")));
34
35
36 filter.setRightFilter(new EqualsFilter("foo"));
37 assertFalse(filter.accept(new MuleMessage("bar")));
38
39
40 filter.setRightFilter(new EqualsFilter("foo"));
41 assertTrue(filter.accept(new MuleMessage("foo")));
42
43 WildcardFilter left = new WildcardFilter("blah.blah.*");
44 WildcardFilter right = new WildcardFilter("blah.*");
45 filter = new AndFilter(left, right);
46 assertNotNull(filter.getLeftFilter());
47 assertNotNull(filter.getRightFilter());
48
49 assertTrue(filter.accept(new MuleMessage("blah.blah.blah")));
50 assertTrue(right.accept(new MuleMessage("blah.blah")));
51 assertTrue(!left.accept(new MuleMessage("blah.blah")));
52 assertTrue(!filter.accept(new MuleMessage("blah.blah")));
53
54 filter = new AndFilter();
55 filter.setLeftFilter(left);
56 filter.setRightFilter(right);
57
58 assertTrue(filter.accept(new MuleMessage("blah.blah.blah")));
59 assertTrue(!filter.accept(new MuleMessage("blah.blah")));
60 }
61
62 public void testOrFilter()
63 {
64 OrFilter filter = new OrFilter();
65 assertNull(filter.getLeftFilter());
66 assertNull(filter.getRightFilter());
67 assertFalse(filter.accept(new MuleMessage("foo")));
68
69 WildcardFilter left = new WildcardFilter("blah.blah.*");
70 WildcardFilter right = new WildcardFilter("blah.b*");
71 filter = new OrFilter(left, right);
72 assertNotNull(filter.getLeftFilter());
73 assertNotNull(filter.getRightFilter());
74
75 assertTrue(filter.accept(new MuleMessage("blah.blah.blah")));
76 assertTrue(right.accept(new MuleMessage("blah.blah")));
77 assertTrue(!left.accept(new MuleMessage("blah.blah")));
78 assertTrue(filter.accept(new MuleMessage("blah.blah")));
79 assertTrue(!filter.accept(new MuleMessage("blah.x.blah")));
80
81 filter = new OrFilter();
82 filter.setLeftFilter(left);
83 filter.setRightFilter(right);
84
85 assertTrue(filter.accept(new MuleMessage("blah.blah.blah")));
86 assertTrue(filter.accept(new MuleMessage("blah.blah")));
87 assertTrue(!filter.accept(new MuleMessage("blah.x.blah")));
88 }
89
90 public void testNotFilter()
91 {
92 NotFilter notFilter = new NotFilter();
93 assertNull(notFilter.getFilter());
94 assertFalse(notFilter.accept(new MuleMessage("foo")));
95 assertFalse(notFilter.accept(new MuleMessage(null)));
96
97 WildcardFilter filter = new WildcardFilter("blah.blah.*");
98 notFilter = new NotFilter(filter);
99 assertNotNull(notFilter.getFilter());
100
101 assertTrue(filter.accept(new MuleMessage("blah.blah.blah")));
102 assertTrue(!notFilter.accept(new MuleMessage("blah.blah.blah")));
103
104 notFilter = new NotFilter();
105 notFilter.setFilter(filter);
106 assertTrue(filter.accept(new MuleMessage("blah.blah.blah")));
107 assertTrue(!notFilter.accept(new MuleMessage("blah.blah.blah")));
108 }
109
110 }