View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *      https://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  
18  package org.apache.commons.lang3.text;
19  
20  import static org.junit.jupiter.api.Assertions.assertEquals;
21  import static org.junit.jupiter.api.Assertions.assertInstanceOf;
22  import static org.junit.jupiter.api.Assertions.assertSame;
23  
24  import org.apache.commons.lang3.AbstractLangTest;
25  import org.junit.jupiter.api.Test;
26  
27  /**
28   * Tests for {@link org.apache.commons.lang3.text.StrMatcher}.
29   */
30  @Deprecated
31  class StrMatcherTest extends AbstractLangTest {
32  
33      private static final char[] BUFFER1 = "0,1\t2 3\n\r\f\u0000'\"".toCharArray();
34  
35      private static final char[] BUFFER2 = "abcdef".toCharArray();
36  
37      @Test
38      void testCharMatcher_char() {
39          final StrMatcher matcher = StrMatcher.charMatcher('c');
40          assertEquals(0, matcher.isMatch(BUFFER2, 0));
41          assertEquals(0, matcher.isMatch(BUFFER2, 1));
42          assertEquals(1, matcher.isMatch(BUFFER2, 2));
43          assertEquals(0, matcher.isMatch(BUFFER2, 3));
44          assertEquals(0, matcher.isMatch(BUFFER2, 4));
45          assertEquals(0, matcher.isMatch(BUFFER2, 5));
46      }
47  
48      @Test
49      void testCharSetMatcher_charArray() {
50          final StrMatcher matcher = StrMatcher.charSetMatcher("ace".toCharArray());
51          assertEquals(1, 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(1, matcher.isMatch(BUFFER2, 4));
56          assertEquals(0, matcher.isMatch(BUFFER2, 5));
57          assertSame(StrMatcher.noneMatcher(), StrMatcher.charSetMatcher());
58          assertSame(StrMatcher.noneMatcher(), StrMatcher.charSetMatcher((char[]) null));
59          assertInstanceOf(StrMatcher.CharMatcher.class, StrMatcher.charSetMatcher("a".toCharArray()));
60      }
61  
62      @Test
63      void testCharSetMatcher_String() {
64          final StrMatcher matcher = StrMatcher.charSetMatcher("ace");
65          assertEquals(1, matcher.isMatch(BUFFER2, 0));
66          assertEquals(0, matcher.isMatch(BUFFER2, 1));
67          assertEquals(1, matcher.isMatch(BUFFER2, 2));
68          assertEquals(0, matcher.isMatch(BUFFER2, 3));
69          assertEquals(1, matcher.isMatch(BUFFER2, 4));
70          assertEquals(0, matcher.isMatch(BUFFER2, 5));
71          assertSame(StrMatcher.noneMatcher(), StrMatcher.charSetMatcher(""));
72          assertSame(StrMatcher.noneMatcher(), StrMatcher.charSetMatcher((String) null));
73          assertInstanceOf(StrMatcher.CharMatcher.class, StrMatcher.charSetMatcher("a"));
74      }
75  
76      @Test
77      void testCommaMatcher() {
78          final StrMatcher matcher = StrMatcher.commaMatcher();
79          assertSame(matcher, StrMatcher.commaMatcher());
80          assertEquals(0, matcher.isMatch(BUFFER1, 0));
81          assertEquals(1, matcher.isMatch(BUFFER1, 1));
82          assertEquals(0, matcher.isMatch(BUFFER1, 2));
83      }
84  
85      @Test
86      void testDoubleQuoteMatcher() {
87          final StrMatcher matcher = StrMatcher.doubleQuoteMatcher();
88          assertSame(matcher, StrMatcher.doubleQuoteMatcher());
89          assertEquals(0, matcher.isMatch(BUFFER1, 11));
90          assertEquals(1, matcher.isMatch(BUFFER1, 12));
91      }
92  
93      @Test
94      void testMatcherIndices() {
95          // remember that the API contract is tight for the isMatch() method
96          // all the onus is on the caller, so invalid inputs are not
97          // the concern of StrMatcher, and are not bugs
98          final StrMatcher matcher = StrMatcher.stringMatcher("bc");
99          assertEquals(2, matcher.isMatch(BUFFER2, 1, 1, BUFFER2.length));
100         assertEquals(2, matcher.isMatch(BUFFER2, 1, 0, 3));
101         assertEquals(0, matcher.isMatch(BUFFER2, 1, 0, 2));
102     }
103 
104     @Test
105     void testNoneMatcher() {
106         final StrMatcher matcher = StrMatcher.noneMatcher();
107         assertSame(matcher, StrMatcher.noneMatcher());
108         assertEquals(0, matcher.isMatch(BUFFER1, 0));
109         assertEquals(0, matcher.isMatch(BUFFER1, 1));
110         assertEquals(0, matcher.isMatch(BUFFER1, 2));
111         assertEquals(0, matcher.isMatch(BUFFER1, 3));
112         assertEquals(0, matcher.isMatch(BUFFER1, 4));
113         assertEquals(0, matcher.isMatch(BUFFER1, 5));
114         assertEquals(0, matcher.isMatch(BUFFER1, 6));
115         assertEquals(0, matcher.isMatch(BUFFER1, 7));
116         assertEquals(0, matcher.isMatch(BUFFER1, 8));
117         assertEquals(0, matcher.isMatch(BUFFER1, 9));
118         assertEquals(0, matcher.isMatch(BUFFER1, 10));
119         assertEquals(0, matcher.isMatch(BUFFER1, 11));
120         assertEquals(0, matcher.isMatch(BUFFER1, 12));
121     }
122 
123     @Test
124     void testQuoteMatcher() {
125         final StrMatcher matcher = StrMatcher.quoteMatcher();
126         assertSame(matcher, StrMatcher.quoteMatcher());
127         assertEquals(0, matcher.isMatch(BUFFER1, 10));
128         assertEquals(1, matcher.isMatch(BUFFER1, 11));
129         assertEquals(1, matcher.isMatch(BUFFER1, 12));
130     }
131 
132     @Test
133     void testSingleQuoteMatcher() {
134         final StrMatcher matcher = StrMatcher.singleQuoteMatcher();
135         assertSame(matcher, StrMatcher.singleQuoteMatcher());
136         assertEquals(0, matcher.isMatch(BUFFER1, 10));
137         assertEquals(1, matcher.isMatch(BUFFER1, 11));
138         assertEquals(0, matcher.isMatch(BUFFER1, 12));
139     }
140 
141     @Test
142     void testSpaceMatcher() {
143         final StrMatcher matcher = StrMatcher.spaceMatcher();
144         assertSame(matcher, StrMatcher.spaceMatcher());
145         assertEquals(0, matcher.isMatch(BUFFER1, 4));
146         assertEquals(1, matcher.isMatch(BUFFER1, 5));
147         assertEquals(0, matcher.isMatch(BUFFER1, 6));
148     }
149 
150     @Test
151     void testSplitMatcher() {
152         final StrMatcher matcher = StrMatcher.splitMatcher();
153         assertSame(matcher, StrMatcher.splitMatcher());
154         assertEquals(0, matcher.isMatch(BUFFER1, 2));
155         assertEquals(1, matcher.isMatch(BUFFER1, 3));
156         assertEquals(0, matcher.isMatch(BUFFER1, 4));
157         assertEquals(1, matcher.isMatch(BUFFER1, 5));
158         assertEquals(0, matcher.isMatch(BUFFER1, 6));
159         assertEquals(1, matcher.isMatch(BUFFER1, 7));
160         assertEquals(1, matcher.isMatch(BUFFER1, 8));
161         assertEquals(1, matcher.isMatch(BUFFER1, 9));
162         assertEquals(0, matcher.isMatch(BUFFER1, 10));
163     }
164 
165     @Test
166     void testStringMatcher_String() {
167         final StrMatcher matcher = StrMatcher.stringMatcher("bc");
168         assertEquals(0, matcher.isMatch(BUFFER2, 0));
169         assertEquals(2, matcher.isMatch(BUFFER2, 1));
170         assertEquals(0, matcher.isMatch(BUFFER2, 2));
171         assertEquals(0, matcher.isMatch(BUFFER2, 3));
172         assertEquals(0, matcher.isMatch(BUFFER2, 4));
173         assertEquals(0, matcher.isMatch(BUFFER2, 5));
174         assertSame(StrMatcher.noneMatcher(), StrMatcher.stringMatcher(""));
175         assertSame(StrMatcher.noneMatcher(), StrMatcher.stringMatcher(null));
176     }
177 
178     @Test
179     void testTabMatcher() {
180         final StrMatcher matcher = StrMatcher.tabMatcher();
181         assertSame(matcher, StrMatcher.tabMatcher());
182         assertEquals(0, matcher.isMatch(BUFFER1, 2));
183         assertEquals(1, matcher.isMatch(BUFFER1, 3));
184         assertEquals(0, matcher.isMatch(BUFFER1, 4));
185     }
186 
187     @Test
188     void testTrimMatcher() {
189         final StrMatcher matcher = StrMatcher.trimMatcher();
190         assertSame(matcher, StrMatcher.trimMatcher());
191         assertEquals(0, matcher.isMatch(BUFFER1, 2));
192         assertEquals(1, matcher.isMatch(BUFFER1, 3));
193         assertEquals(0, matcher.isMatch(BUFFER1, 4));
194         assertEquals(1, matcher.isMatch(BUFFER1, 5));
195         assertEquals(0, matcher.isMatch(BUFFER1, 6));
196         assertEquals(1, matcher.isMatch(BUFFER1, 7));
197         assertEquals(1, matcher.isMatch(BUFFER1, 8));
198         assertEquals(1, matcher.isMatch(BUFFER1, 9));
199         assertEquals(1, matcher.isMatch(BUFFER1, 10));
200     }
201 
202 }