1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.text;
18
19 import static org.junit.jupiter.api.Assertions.assertEquals;
20 import static org.junit.jupiter.api.Assertions.assertSame;
21
22 import org.junit.jupiter.api.Test;
23
24
25
26
27
28
29 @Deprecated
30 class StrMatcherTest {
31
32 private static final char[] BUFFER1 = "0,1\t2 3\n\r\f\u0000'\"".toCharArray();
33
34 private static final char[] BUFFER2 = "abcdef".toCharArray();
35
36 static void assertStrMatcherImpl(final String internalSimpleName, final StrMatcher obj) {
37 assertEquals(StrMatcher.class.getName() + "$" + internalSimpleName, obj.getClass().getName());
38 }
39
40 static void assertStrMatcherPrefixImpl(final String internalSimpleName, final StrSubstitutor obj) {
41 assertStrMatcherImpl(internalSimpleName, obj.getVariablePrefixMatcher());
42 }
43
44 static void assertStrMatcherSuffixImpl(final String internalSimpleName, final StrSubstitutor obj) {
45 assertStrMatcherImpl(internalSimpleName, obj.getVariableSuffixMatcher());
46 }
47
48 @Test
49 void testCharMatcher_char() {
50 final StrMatcher matcher = StrMatcher.charMatcher('c');
51 assertEquals(0, matcher.isMatch(BUFFER2, 0));
52 assertEquals(0, matcher.isMatch(BUFFER2, 1));
53 assertEquals(1, matcher.isMatch(BUFFER2, 2));
54 assertEquals(0, matcher.isMatch(BUFFER2, 3));
55 assertEquals(0, matcher.isMatch(BUFFER2, 4));
56 assertEquals(0, matcher.isMatch(BUFFER2, 5));
57 }
58
59 @Test
60 void testCharSetMatcher_charArray() {
61 final StrMatcher matcher = StrMatcher.charSetMatcher("ace".toCharArray());
62 assertEquals(1, matcher.isMatch(BUFFER2, 0));
63 assertEquals(0, matcher.isMatch(BUFFER2, 1));
64 assertEquals(1, matcher.isMatch(BUFFER2, 2));
65 assertEquals(0, matcher.isMatch(BUFFER2, 3));
66 assertEquals(1, matcher.isMatch(BUFFER2, 4));
67 assertEquals(0, matcher.isMatch(BUFFER2, 5));
68 assertSame(StrMatcher.charSetMatcher(), StrMatcher.noneMatcher());
69 assertSame(StrMatcher.charSetMatcher((char[]) null), StrMatcher.noneMatcher());
70 StrMatcherTest.assertStrMatcherImpl("CharMatcher", StrMatcher.charSetMatcher("a".toCharArray()));
71 }
72
73 @Test
74 void testCharSetMatcher_String() {
75 final StrMatcher matcher = StrMatcher.charSetMatcher("ace");
76 assertEquals(1, matcher.isMatch(BUFFER2, 0));
77 assertEquals(0, matcher.isMatch(BUFFER2, 1));
78 assertEquals(1, matcher.isMatch(BUFFER2, 2));
79 assertEquals(0, matcher.isMatch(BUFFER2, 3));
80 assertEquals(1, matcher.isMatch(BUFFER2, 4));
81 assertEquals(0, matcher.isMatch(BUFFER2, 5));
82 assertSame(StrMatcher.charSetMatcher(""), StrMatcher.noneMatcher());
83 assertSame(StrMatcher.charSetMatcher((String) null), StrMatcher.noneMatcher());
84 StrMatcherTest.assertStrMatcherImpl("CharMatcher", StrMatcher.charSetMatcher("a"));
85 }
86
87 @Test
88 void testCommaMatcher() {
89 final StrMatcher matcher = StrMatcher.commaMatcher();
90 assertSame(StrMatcher.commaMatcher(), matcher);
91 assertEquals(0, matcher.isMatch(BUFFER1, 0));
92 assertEquals(1, matcher.isMatch(BUFFER1, 1));
93 assertEquals(0, matcher.isMatch(BUFFER1, 2));
94 }
95
96 @Test
97 void testDoubleQuoteMatcher() {
98 final StrMatcher matcher = StrMatcher.doubleQuoteMatcher();
99 assertSame(StrMatcher.doubleQuoteMatcher(), matcher);
100 assertEquals(0, matcher.isMatch(BUFFER1, 11));
101 assertEquals(1, matcher.isMatch(BUFFER1, 12));
102 }
103
104 @Test
105 void testMatcherIndices() {
106
107
108
109 final StrMatcher matcher = StrMatcher.stringMatcher("bc");
110 assertEquals(2, matcher.isMatch(BUFFER2, 1, 1, BUFFER2.length));
111 assertEquals(2, matcher.isMatch(BUFFER2, 1, 0, 3));
112 assertEquals(0, matcher.isMatch(BUFFER2, 1, 0, 2));
113 }
114
115 @Test
116 void testNoneMatcher() {
117 final StrMatcher matcher = StrMatcher.noneMatcher();
118 assertSame(StrMatcher.noneMatcher(), matcher);
119 assertEquals(0, matcher.isMatch(BUFFER1, 0));
120 assertEquals(0, matcher.isMatch(BUFFER1, 1));
121 assertEquals(0, matcher.isMatch(BUFFER1, 2));
122 assertEquals(0, matcher.isMatch(BUFFER1, 3));
123 assertEquals(0, matcher.isMatch(BUFFER1, 4));
124 assertEquals(0, matcher.isMatch(BUFFER1, 5));
125 assertEquals(0, matcher.isMatch(BUFFER1, 6));
126 assertEquals(0, matcher.isMatch(BUFFER1, 7));
127 assertEquals(0, matcher.isMatch(BUFFER1, 8));
128 assertEquals(0, matcher.isMatch(BUFFER1, 9));
129 assertEquals(0, matcher.isMatch(BUFFER1, 10));
130 assertEquals(0, matcher.isMatch(BUFFER1, 11));
131 assertEquals(0, matcher.isMatch(BUFFER1, 12));
132 }
133
134 @Test
135 void testQuoteMatcher() {
136 final StrMatcher matcher = StrMatcher.quoteMatcher();
137 assertSame(StrMatcher.quoteMatcher(), matcher);
138 assertEquals(0, matcher.isMatch(BUFFER1, 10));
139 assertEquals(1, matcher.isMatch(BUFFER1, 11));
140 assertEquals(1, matcher.isMatch(BUFFER1, 12));
141 }
142
143 @Test
144 void testSingleQuoteMatcher() {
145 final StrMatcher matcher = StrMatcher.singleQuoteMatcher();
146 assertSame(StrMatcher.singleQuoteMatcher(), matcher);
147 assertEquals(0, matcher.isMatch(BUFFER1, 10));
148 assertEquals(1, matcher.isMatch(BUFFER1, 11));
149 assertEquals(0, matcher.isMatch(BUFFER1, 12));
150 }
151
152 @Test
153 void testSpaceMatcher() {
154 final StrMatcher matcher = StrMatcher.spaceMatcher();
155 assertSame(StrMatcher.spaceMatcher(), matcher);
156 assertEquals(0, matcher.isMatch(BUFFER1, 4));
157 assertEquals(1, matcher.isMatch(BUFFER1, 5));
158 assertEquals(0, matcher.isMatch(BUFFER1, 6));
159 }
160
161 @Test
162 void testSplitMatcher() {
163 final StrMatcher matcher = StrMatcher.splitMatcher();
164 assertSame(StrMatcher.splitMatcher(), matcher);
165 assertEquals(0, matcher.isMatch(BUFFER1, 2));
166 assertEquals(1, matcher.isMatch(BUFFER1, 3));
167 assertEquals(0, matcher.isMatch(BUFFER1, 4));
168 assertEquals(1, matcher.isMatch(BUFFER1, 5));
169 assertEquals(0, matcher.isMatch(BUFFER1, 6));
170 assertEquals(1, matcher.isMatch(BUFFER1, 7));
171 assertEquals(1, matcher.isMatch(BUFFER1, 8));
172 assertEquals(1, matcher.isMatch(BUFFER1, 9));
173 assertEquals(0, matcher.isMatch(BUFFER1, 10));
174 }
175
176 @Test
177 void testStringMatcher_String() {
178 final StrMatcher matcher = StrMatcher.stringMatcher("bc");
179 assertEquals(0, matcher.isMatch(BUFFER2, 0));
180 assertEquals(2, matcher.isMatch(BUFFER2, 1));
181 assertEquals(0, matcher.isMatch(BUFFER2, 2));
182 assertEquals(0, matcher.isMatch(BUFFER2, 3));
183 assertEquals(0, matcher.isMatch(BUFFER2, 4));
184 assertEquals(0, matcher.isMatch(BUFFER2, 5));
185 assertSame(StrMatcher.stringMatcher(""), StrMatcher.noneMatcher());
186 assertSame(StrMatcher.stringMatcher((String) null), StrMatcher.noneMatcher());
187 }
188
189 @Test
190 void testTabMatcher() {
191 final StrMatcher matcher = StrMatcher.tabMatcher();
192 assertSame(StrMatcher.tabMatcher(), matcher);
193 assertEquals(0, matcher.isMatch(BUFFER1, 2));
194 assertEquals(1, matcher.isMatch(BUFFER1, 3));
195 assertEquals(0, matcher.isMatch(BUFFER1, 4));
196 }
197
198 @Test
199 void testTrimMatcher() {
200 final StrMatcher matcher = StrMatcher.trimMatcher();
201 assertSame(StrMatcher.trimMatcher(), matcher);
202 assertEquals(0, matcher.isMatch(BUFFER1, 2));
203 assertEquals(1, matcher.isMatch(BUFFER1, 3));
204 assertEquals(0, matcher.isMatch(BUFFER1, 4));
205 assertEquals(1, matcher.isMatch(BUFFER1, 5));
206 assertEquals(0, matcher.isMatch(BUFFER1, 6));
207 assertEquals(1, matcher.isMatch(BUFFER1, 7));
208 assertEquals(1, matcher.isMatch(BUFFER1, 8));
209 assertEquals(1, matcher.isMatch(BUFFER1, 9));
210 assertEquals(1, matcher.isMatch(BUFFER1, 10));
211 }
212
213 }