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