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 static org.junit.jupiter.api.Assertions.assertEquals;
22
23 import java.util.Arrays;
24
25 import org.apache.rat.analysis.IHeaderMatcher;
26 import org.apache.rat.analysis.IHeaderMatcher.State;
27 import org.apache.rat.testhelpers.TestingMatcher;
28 import org.junit.jupiter.api.Test;
29
30 public class OrMatcherTest {
31
32 private void assertValues(IHeaderMatcher target, State hello, State world, State finalize) {
33 assertEquals(State.i, target.currentState());
34 assertEquals( hello, target.matches("hello"), "hello match");
35 assertEquals( hello, target.currentState(), "hello current");
36 assertEquals(world, target.matches("world"), "world match");
37 assertEquals( world, target.currentState(), "world current");
38 assertEquals(finalize, target.finalizeState(), "finalize match");
39 assertEquals(finalize, target.currentState(), "finalize current");
40 }
41
42 @Test
43 public void trueTest() {
44 IHeaderMatcher one = new TestingMatcher("one", false, false);
45 IHeaderMatcher two = new TestingMatcher("two", false, true);
46 OrMatcher target = new OrMatcher("Testing", Arrays.asList(one, two));
47 assertValues(target, State.i, State.t, State.t);
48 target.reset();
49 assertEquals(State.i, one.currentState());
50 assertEquals(State.i, two.currentState());
51 assertEquals(State.i, target.currentState());
52 }
53
54 @Test
55 public void falseTest() {
56 IHeaderMatcher one = new TestingMatcher("one", false, false);
57 IHeaderMatcher two = new TestingMatcher("two", false, false);
58 OrMatcher target = new OrMatcher("Testing", Arrays.asList(one, two));
59 assertValues(target, State.i, State.i, State.f);
60 target.reset();
61 assertEquals(State.i, one.currentState());
62 assertEquals(State.i, two.currentState());
63 assertEquals(State.i, target.currentState());
64 }
65
66 @Test
67 public void indeterminentTest() {
68 IHeaderMatcher one = new TestingMatcher("one", false, false);
69 IHeaderMatcher two = new TestingMatcher("two", false, false);
70 OrMatcher target = new OrMatcher("Testing", Arrays.asList(one, two));
71 assertValues(target, State.i, State.i, State.f);
72 target.reset();
73 assertEquals(State.i, one.currentState());
74 assertEquals(State.i, two.currentState());
75 assertEquals(State.i, target.currentState());
76 }
77 }