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.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          // both null
39          assertFalse(filter.accept(new DefaultMuleMessage("foo", muleContext)));
40  
41          // only one filter set
42          filter.getFilters().add(new EqualsFilter("foo"));
43          assertTrue(filter.accept(new DefaultMuleMessage("foo", muleContext)));
44  
45          // another one set too, but does not accept
46          filter.getFilters().add(new EqualsFilter("foo"));
47          assertFalse(filter.accept(new DefaultMuleMessage("bar", muleContext)));
48  
49          // both accept
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 }