1
2
3
4
5
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
24 WildcardFilter filter = new WildcardFilter();
25 assertFalse(filter.accept("No tengo dinero"));
26
27
28 filter.setPattern("* brown fox");
29 assertTrue(filter.accept("The quick brown fox"));
30
31
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 }