1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package net.sourceforge.domian.specification;
17
18
19 import static org.junit.Assert.assertEquals;
20 import static org.junit.Assert.assertFalse;
21 import static org.junit.Assert.assertTrue;
22 import static org.junit.Assert.fail;
23 import org.junit.Test;
24
25
26 public class WildcardExpressionMatcherIgnoreCaseStringSpecificationTest {
27
28 @Test
29 public void shouldNotAcceptNullAsValue() {
30 try {
31 new WildcardExpressionMatcherIgnoreCaseStringSpecification(null);
32 fail("Should have thrown exception");
33
34 } catch (IllegalArgumentException e) {
35 String expectedMessage = "Regular expression parameter cannot be null";
36 assertEquals(expectedMessage, e.getMessage());
37 }
38 }
39
40
41 @Test
42 public void shouldMatchWildcardExpressions_Plain() {
43 Specification<String> spec = new WildcardExpressionMatcherIgnoreCaseStringSpecification("Eirik");
44 assertFalse(spec.isSatisfiedBy(null));
45 assertFalse(spec.isSatisfiedBy(""));
46 assertFalse(spec.isSatisfiedBy(" "));
47 assertTrue(spec.isSatisfiedBy("eirik"));
48 assertTrue(spec.isSatisfiedBy("Eirik"));
49 }
50
51
52 @Test
53 public void shouldMatchWildcardExpressions_Questions() {
54 Specification<String> spec = new WildcardExpressionMatcherIgnoreCaseStringSpecification("??");
55 assertFalse(spec.isSatisfiedBy(null));
56 assertFalse(spec.isSatisfiedBy(""));
57 assertTrue(spec.isSatisfiedBy(" "));
58 assertFalse(spec.isSatisfiedBy(" "));
59 assertFalse(spec.isSatisfiedBy("e ri "));
60 assertTrue(spec.isSatisfiedBy("Ei"));
61
62 spec = new WildcardExpressionMatcherIgnoreCaseStringSpecification("E?ri?");
63 assertFalse(spec.isSatisfiedBy(null));
64 assertFalse(spec.isSatisfiedBy(""));
65 assertFalse(spec.isSatisfiedBy(" "));
66 assertFalse(spec.isSatisfiedBy("e rk "));
67 assertTrue(spec.isSatisfiedBy("e ri "));
68 assertTrue(spec.isSatisfiedBy("E ri "));
69 assertTrue(spec.isSatisfiedBy("E rik"));
70 assertTrue(spec.isSatisfiedBy("E%rix"));
71 assertTrue(spec.isSatisfiedBy("eirik"));
72 assertTrue(spec.isSatisfiedBy("Eirik"));
73 }
74
75
76 @Test
77 public void shouldMatchWildcardExpressions_Stars() {
78 Specification<String> spec = new WildcardExpressionMatcherIgnoreCaseStringSpecification("*");
79 assertFalse(spec.isSatisfiedBy(null));
80 assertTrue(spec.isSatisfiedBy(""));
81 assertTrue(spec.isSatisfiedBy(" "));
82 assertTrue(spec.isSatisfiedBy("e ri "));
83 assertTrue(spec.isSatisfiedBy("E ri "));
84 assertTrue(spec.isSatisfiedBy("E rik"));
85 assertTrue(spec.isSatisfiedBy("E%rix"));
86 assertTrue(spec.isSatisfiedBy("eirik"));
87 assertTrue(spec.isSatisfiedBy("Eirik"));
88
89 spec = new WildcardExpressionMatcherIgnoreCaseStringSpecification("*i*k");
90 assertFalse(spec.isSatisfiedBy(null));
91 assertFalse(spec.isSatisfiedBy(""));
92 assertFalse(spec.isSatisfiedBy(" "));
93 assertTrue(spec.isSatisfiedBy("ik"));
94 assertFalse(spec.isSatisfiedBy("E ri "));
95 assertTrue(spec.isSatisfiedBy("E rik"));
96 assertTrue(spec.isSatisfiedBy("e%rik"));
97 assertTrue(spec.isSatisfiedBy("eirik"));
98 assertTrue(spec.isSatisfiedBy("Eirik"));
99 }
100 }