View Javadoc

1   /*
2    * $Id:LogicFiltersTestCase.java 5937 2007-04-09 22:35:04Z rossmason $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
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          // both null
30          assertFalse(filter.accept(new DefaultMuleMessage("foo", muleContext)));
31  
32          // only one filter set
33          filter.getFilters().add(new EqualsFilter("foo"));
34          assertTrue(filter.accept(new DefaultMuleMessage("foo", muleContext)));
35  
36          // another one set too, but does not accept
37          filter.getFilters().add(new EqualsFilter("foo"));
38          assertFalse(filter.accept(new DefaultMuleMessage("bar", muleContext)));
39  
40          // both accept
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 }