View Javadoc
1   /*
2    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
3    * The software in this package is published under the terms of the CPAL v1.0
4    * license, a copy of which has been included with this distribution in the
5    * LICENSE.txt file.
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          // both null
35          assertFalse(filter.accept(new DefaultMuleMessage("foo", muleContext)));
36  
37          // only one filter set
38          filter.getFilters().add(new EqualsFilter("foo"));
39          assertTrue(filter.accept(new DefaultMuleMessage("foo", muleContext)));
40  
41          // another one set too, but does not accept
42          filter.getFilters().add(new EqualsFilter("foo"));
43          assertFalse(filter.accept(new DefaultMuleMessage("bar", muleContext)));
44  
45          // both accept
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 }