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