View Javadoc

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