2
2
3
3
import org .junit .Test ;
4
4
5
- import static org .hamcrest .CoreMatchers .equalTo ;
6
- import static org .hamcrest .CoreMatchers .is ;
5
+ import static org .hamcrest .CoreMatchers .*;
7
6
import static org .junit .Assert .*;
7
+ import static ru .lanwen .verbalregex .VerbalExpression .regex ;
8
+ import static ru .lanwen .verbalregex .matchers .TestsExactMatcher .matchesExactly ;
8
9
9
10
public class BasicFunctionalityUnitTest {
10
11
@ Test
@@ -69,7 +70,7 @@ public void testStartOfLine() {
69
70
70
71
@ Test
71
72
public void testStartOfLineFalse () {
72
- VerbalExpression testRegex = VerbalExpression . regex ()
73
+ VerbalExpression testRegex = regex ()
73
74
.startOfLine (false )
74
75
.then ("a" )
75
76
.build ();
@@ -79,7 +80,7 @@ public void testStartOfLineFalse() {
79
80
80
81
@ Test
81
82
public void testRangeWithMultiplyRanges () throws Exception {
82
- VerbalExpression regex = VerbalExpression . regex ().range ("a" , "z" , "A" , "Z" ).build ();
83
+ VerbalExpression regex = regex ().range ("a" , "z" , "A" , "Z" ).build ();
83
84
84
85
assertThat ("Regex with multi-range differs from expected" , regex .toString (), equalTo ("[a-zA-Z]" ));
85
86
assertThat ("Regex don't matches letter" , regex .test ("b" ), is (true ));
@@ -102,7 +103,7 @@ public void testEndOfLine() {
102
103
103
104
@ Test
104
105
public void testEndOfLineIsFalse () {
105
- VerbalExpression testRegex = VerbalExpression . regex ()
106
+ VerbalExpression testRegex = regex ()
106
107
.find ("a" )
107
108
.endOfLine (false )
108
109
.build ();
@@ -141,8 +142,8 @@ public void testAnyOf() {
141
142
142
143
@ Test
143
144
public void testAnySameAsAnyOf () {
144
- VerbalExpression any = VerbalExpression . regex ().any ("abc" ).build ();
145
- VerbalExpression anyOf = VerbalExpression . regex ().anyOf ("abc" ).build ();
145
+ VerbalExpression any = regex ().any ("abc" ).build ();
146
+ VerbalExpression anyOf = regex ().anyOf ("abc" ).build ();
146
147
147
148
assertThat ("any differs from anyOf" , any .toString (), equalTo (anyOf .toString ()));
148
149
}
@@ -189,7 +190,7 @@ public void testBr() {
189
190
.then ("def" )
190
191
.build ();
191
192
192
- assertThat (".br() differs from .lineBreak()" , testRegexBr .toString (), equalTo (testRegexLineBr .toString ()));
193
+ assertThat (".br() differs from .lineBreak()" , testRegexBr .toString (), equalTo (testRegexLineBr .toString ()));
193
194
}
194
195
195
196
@ Test
@@ -224,7 +225,7 @@ public void testWithAnyCase() {
224
225
225
226
@ Test
226
227
public void testWithAnyCaseIsFalse () {
227
- VerbalExpression testRegex = VerbalExpression . regex ()
228
+ VerbalExpression testRegex = regex ()
228
229
.withAnyCase ()
229
230
.startOfLine ()
230
231
.then ("a" )
@@ -236,7 +237,7 @@ public void testWithAnyCaseIsFalse() {
236
237
237
238
@ Test
238
239
public void testSearchOneLine () {
239
- VerbalExpression testRegex = VerbalExpression . regex ()
240
+ VerbalExpression testRegex = regex ()
240
241
.startOfLine ()
241
242
.then ("a" )
242
243
.br ()
@@ -274,18 +275,24 @@ public void testGetText() {
274
275
@ Test
275
276
public void testStartCapture () {
276
277
String text = "aaabcd" ;
277
- VerbalExpression regex = VerbalExpression . regex ()
278
+ VerbalExpression regex = regex ()
278
279
.find ("a" ).count (3 )
279
280
.capture ().find ("b" ).anything ().build ();
280
281
281
282
assertThat ("regex don't match string" , regex .getText (text ), equalTo (text ));
282
283
assertThat ("can't get first captured group" , regex .getText (text , 1 ), equalTo ("bcd" ));
283
284
}
284
285
286
+ @ Test
287
+ public void captIsSameAsCapture () {
288
+ assertThat ("Capt produce defferent than capture regex" , regex ().capt ().build ().toString (),
289
+ equalTo (regex ().capture ().build ().toString ()));
290
+ }
291
+
285
292
@ Test
286
293
public void shouldReturnEmptyStringWhenNoGroupFound () {
287
294
String text = "abc" ;
288
- VerbalExpression regex = VerbalExpression . regex ().find ("d" ).capture ().find ("e" ).build ();
295
+ VerbalExpression regex = regex ().find ("d" ).capture ().find ("e" ).build ();
289
296
290
297
assertThat ("regex don't match string" , regex .getText (text ), equalTo ("" ));
291
298
assertThat ("first captured group not empty string" , regex .getText (text , 1 ), equalTo ("" ));
@@ -298,17 +305,17 @@ public void testCountWithRange() {
298
305
String text2c = "abcce" ;
299
306
String text1c = "abce" ;
300
307
301
- VerbalExpression regex = VerbalExpression . regex ().find ("c" ).count (2 , 3 ).build ();
308
+ VerbalExpression regex = regex ().find ("c" ).count (2 , 3 ).build ();
302
309
303
310
assertThat ("regex don't match string" , regex .getText (text4c ), equalTo ("ccc" ));
304
311
assertThat ("regex don't match string" , regex .getText (text2c ), equalTo ("cc" ));
305
312
assertThat ("regex don't match string" , regex .test (text1c ), is (false ));
306
313
}
307
314
308
- @ Test
315
+ @ Test
309
316
public void testEndCapture () {
310
317
String text = "aaabcd" ;
311
- VerbalExpression regex = VerbalExpression . regex ()
318
+ VerbalExpression regex = regex ()
312
319
.find ("a" )
313
320
.capture ().find ("b" ).anything ().endCapture ().then ("cd" ).build ();
314
321
@@ -320,16 +327,17 @@ public void testEndCapture() {
320
327
@ Test
321
328
public void testMultiplyCapture () {
322
329
String text = "aaabcd" ;
323
- VerbalExpression regex = VerbalExpression . regex ()
330
+ VerbalExpression regex = regex ()
324
331
.find ("a" ).count (1 )
325
332
.capture ().find ("b" ).endCapture ().anything ().capture ().find ("d" ).build ();
326
333
327
334
assertThat ("can't get first captured group" , regex .getText (text , 1 ), equalTo ("b" ));
328
335
assertThat ("can't get second captured group" , regex .getText (text , 2 ), equalTo ("d" ));
329
336
}
337
+
330
338
@ Test
331
339
public void testOrWithCapture () {
332
- VerbalExpression testRegex = VerbalExpression . regex ()
340
+ VerbalExpression testRegex = regex ()
333
341
.capture ()
334
342
.find ("abc" )
335
343
.or ("def" )
@@ -343,4 +351,18 @@ public void testOrWithCapture() {
343
351
assertThat (testRegex .getText ("xxxabcdefzzz" , 2 ), equalTo ("abcnull" ));
344
352
}
345
353
354
+ @ Test
355
+ public void addRegexBuilderWrapsItWithUnsavedGroup () throws Exception {
356
+ VerbalExpression regex = regex ()
357
+ .add (regex ().capt ().find ("string" ).count (2 ).endCapt ().count (1 ).digit ()).count (2 ).build ();
358
+
359
+ assertThat ("Added regex builder don't wrapped with unsaved group" ,
360
+ regex .toString (), startsWith ("(?:((?:string" ));
361
+
362
+ String example = "stringstring1" ;
363
+ String example2digit = "stringstring11" ;
364
+
365
+ assertThat (regex , matchesExactly (example + example ));
366
+ assertThat (regex , not (matchesExactly (example2digit )));
367
+ }
346
368
}
0 commit comments