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.tck.junit4.AbstractMuleTestCase;
10  
11  import org.junit.Test;
12  
13  import static org.junit.Assert.assertFalse;
14  import static org.junit.Assert.assertNotNull;
15  import static org.junit.Assert.assertTrue;
16  
17  public class WildcardFilterTestCase extends AbstractMuleTestCase
18  {
19  
20      @Test
21      public void testWildcardFilterNoPattern()
22      {
23          // start with default
24          WildcardFilter filter = new WildcardFilter();
25          assertFalse(filter.accept("No tengo dinero"));
26  
27          // activate a pattern
28          filter.setPattern("* brown fox");
29          assertTrue(filter.accept("The quick brown fox"));
30  
31          // remove pattern again, i.e. block all
32          filter.setPattern(null);
33          assertFalse(filter.accept("oh-oh"));
34      }
35  
36      @Test
37      public void testWildcardFilterPostfix()
38      {
39          WildcardFilter filter = new WildcardFilter("The quick *");
40          assertNotNull(filter.getPattern());
41          assertTrue(filter.accept("The quick brown fox"));
42          assertTrue(filter.accept("The quick *"));
43  
44          assertTrue(!filter.accept("The quickbrown fox"));
45          assertTrue(!filter.accept("he quick brown fox"));
46      }
47  
48      @Test
49      public void testWildcardFilterPrefix()
50      {
51          WildcardFilter filter = new WildcardFilter();
52          filter.setPattern("* brown fox");
53          assertTrue(filter.accept("The quick brown fox"));
54          assertTrue(filter.accept("* brown fox"));
55  
56          assertTrue(!filter.accept("The quickbrown fox"));
57          assertTrue(!filter.accept("The quick brown fo"));
58  
59      }
60  
61      @Test
62      public void testWildcardFilterExactMatch()
63      {
64          WildcardFilter filter = new WildcardFilter();
65          filter.setPattern("fox");
66          assertTrue(filter.accept("fox"));
67  
68          filter.setPattern("");
69          assertTrue(filter.accept(""));
70      }
71  
72      @Test
73      public void testWildcardFilterPrePost()
74      {
75          WildcardFilter filter = new WildcardFilter();
76          filter.setPattern("* brown *");
77          assertTrue(filter.accept("The quick brown fox"));
78          assertTrue(filter.accept("* brown fox"));
79  
80          assertTrue(!filter.accept("The quickbrown fox"));
81          assertTrue(filter.accept("The quick brown fo"));
82  
83          filter.setPattern("**");
84          assertTrue(filter.accept("The quick brown fox"));
85  
86          filter.setPattern("*w*");
87          assertTrue(filter.accept("The quick brown fox"));
88  
89          filter.setPattern("*");
90          assertTrue(filter.accept("The quick brown fox"));
91  
92          filter.setPattern("*.*");
93          assertTrue(filter.accept("test.xml"));
94  
95          filter.setPattern("*.txt");
96          assertTrue(filter.accept("test.txt"));
97      }
98  
99      @Test
100     public void testWildcardFilterMultiplePatterns()
101     {
102         WildcardFilter filter = new WildcardFilter();
103         filter.setPattern("* brown*, The*");
104         assertTrue(filter.accept("The quick brown fox"));
105         assertTrue(filter.accept(" brown fox"));
106 
107         assertTrue(filter.accept("The quickbrown fox"));
108 
109         filter.setPattern("* if, The*");
110         assertTrue(!filter.accept("What The!"));
111         assertTrue(!filter.accept("simplify"));
112 
113     }
114 
115     @Test
116     public void testWildcardFilterCasesensitive()
117     {
118         WildcardFilter filter = new WildcardFilter();
119         filter.setPattern("* brown fox");
120         assertFalse(filter.accept("The quick Brown fox"));
121         assertTrue(filter.accept("* brown fox"));
122         filter.setCaseSensitive(false);
123         assertTrue(filter.accept("The quick Brown fox"));
124     }
125 
126     @Test
127     public void testClassAndSubclass()
128     {
129         WildcardFilter filter = new WildcardFilter();
130 
131         filter.setPattern("java.lang.Throwable+");
132         assertTrue(filter.accept(new Exception()));
133         assertTrue(filter.accept(new Throwable()));
134         assertFalse(filter.accept(new Object()));
135 
136         filter.setPattern("java.lang.Throwable");
137         assertFalse(filter.accept(new Exception()));
138         assertTrue(filter.accept(new Throwable()));
139         assertFalse(filter.accept(new Object()));
140     }
141 }