1
2
3
4
5
6
7
8
9
10
11 package ch.qos.logback.core.joran.spi;
12
13 import static org.junit.Assert.assertEquals;
14
15 import org.junit.Test;
16
17
18
19
20
21
22 public class PatternTest {
23
24 @Test
25 public void test1() {
26 Pattern p = new Pattern("a");
27 assertEquals(1, p.size());
28 assertEquals("a", p.peekLast());
29 assertEquals("a", p.get(0));
30 }
31
32 @Test
33 public void testSuffix() {
34 Pattern p = new Pattern("a/");
35 assertEquals(1, p.size());
36 assertEquals("a", p.peekLast());
37 assertEquals("a", p.get(0));
38 }
39
40 @Test
41 public void test2() {
42 Pattern p = new Pattern("a/b");
43 assertEquals(2, p.size());
44 assertEquals("b", p.peekLast());
45 assertEquals("a", p.get(0));
46 assertEquals("b", p.get(1));
47 }
48
49 @Test
50 public void test3() {
51 Pattern p = new Pattern("a123/b1234/cvvsdf");
52 assertEquals(3, p.size());
53 assertEquals("a123", p.get(0));
54 assertEquals("b1234", p.get(1));
55 assertEquals("cvvsdf", p.get(2));
56 }
57
58 @Test
59 public void test4() {
60 Pattern p = new Pattern("/a123/b1234/cvvsdf");
61 assertEquals(3, p.size());
62 assertEquals("a123", p.get(0));
63 assertEquals("b1234", p.get(1));
64 assertEquals("cvvsdf", p.get(2));
65 }
66
67 @Test
68 public void test5() {
69 Pattern p = new Pattern("//a");
70 assertEquals(1, p.size());
71 assertEquals("a", p.get(0));
72 }
73
74 @Test
75 public void test6() {
76 Pattern p = new Pattern("//a//b");
77 assertEquals(2, p.size());
78 assertEquals("a", p.get(0));
79 assertEquals("b", p.get(1));
80 }
81
82
83
84 @Test
85 public void testTailMatch() {
86 {
87 Pattern p = new Pattern("/a/b");
88 Pattern rulePattern = new Pattern("*");
89 assertEquals(0, p.getTailMatchLength(rulePattern));
90 }
91
92 {
93 Pattern p = new Pattern("/a");
94 Pattern rulePattern = new Pattern("*/a");
95 assertEquals(1, p.getTailMatchLength(rulePattern));
96 }
97
98 {
99 Pattern p = new Pattern("/a/b");
100 Pattern rulePattern = new Pattern("*/b");
101 assertEquals(1, p.getTailMatchLength(rulePattern));
102 }
103
104
105 {
106 Pattern p = new Pattern("/a/b/c");
107 Pattern rulePattern = new Pattern("*/b/c");
108 assertEquals(2, p.getTailMatchLength(rulePattern));
109 }
110 }
111
112
113 @Test
114 public void testPrefixMatch() {
115 {
116 Pattern p = new Pattern("/a/b");
117 Pattern rulePattern = new Pattern("/x/*");
118 assertEquals(0, p.getPrefixMatchLength(rulePattern));
119 }
120
121 {
122 Pattern p = new Pattern("/a");
123 Pattern rulePattern = new Pattern("/x/*");
124 assertEquals(0, p.getPrefixMatchLength(rulePattern));
125 }
126
127 {
128 Pattern p = new Pattern("/a/b");
129 Pattern rulePattern = new Pattern("/a/*");
130 assertEquals(1, p.getPrefixMatchLength(rulePattern));
131 }
132
133 {
134 Pattern p = new Pattern("/a/b");
135 Pattern rulePattern = new Pattern("/a/b/*");
136 assertEquals(2, p.getPrefixMatchLength(rulePattern));
137 }
138
139 {
140 Pattern p = new Pattern("/a/b");
141 Pattern rulePattern = new Pattern("/*");
142 assertEquals(0, p.getPrefixMatchLength(rulePattern));
143 }
144 }
145
146 }