1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.rat.analysis.matchers;
20
21 import org.junit.jupiter.api.BeforeEach;
22 import org.junit.jupiter.api.Test;
23
24 import static org.junit.jupiter.api.Assertions.assertEquals;
25
26 import java.util.regex.Pattern;
27
28 import org.apache.rat.analysis.IHeaderMatcher.State;
29
30 public class SimpleRegexMatcherTest {
31
32 SimpleRegexMatcher target = new SimpleRegexMatcher(Pattern.compile("hello\\sworld"));
33
34 @BeforeEach
35 public void setup() {
36 target.reset();
37 }
38
39 @Test
40 public void testMatch() {
41 assertEquals( State.i, target.currentState());
42 assertEquals( State.i, target.matches("what in the world"));
43 assertEquals( State.i, target.currentState());
44 assertEquals( State.t, target.matches("hello world"));
45 assertEquals( State.t, target.currentState());
46 assertEquals( State.t, target.finalizeState());
47 assertEquals( State.t, target.currentState());
48 target.reset();
49 assertEquals( State.i, target.currentState());
50 }
51
52 @Test
53 public void testNoMatch() {
54 assertEquals( State.i, target.currentState());
55 assertEquals( State.i, target.matches("what in the world"));
56 assertEquals( State.i, target.currentState());
57 assertEquals( State.i, target.matches("hello there"));
58 assertEquals( State.i, target.currentState());
59 assertEquals( State.f, target.finalizeState());
60 assertEquals( State.f, target.currentState());
61 target.reset();
62 assertEquals( State.i, target.currentState());
63 }
64
65 @Test
66 public void testTrueIsAlwaysTrue() {
67 assertEquals( State.i, target.currentState());
68 assertEquals( State.t, target.matches("hello world"));
69 assertEquals( State.t, target.currentState());
70 assertEquals( State.t, target.matches("A non matching line"));
71 assertEquals( State.t, target.currentState());
72 assertEquals( State.t, target.finalizeState());
73 assertEquals( State.t, target.currentState());
74 target.reset();
75 assertEquals( State.i, target.currentState());
76 }
77 }