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