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
31 public class AndMatcherTest {
32
33 private void assertValues(IHeaderMatcher target, State hello, State world, State finalize) {
34 assertEquals(State.i, target.currentState());
35 assertEquals(hello, target.matches("hello"));
36 assertEquals(hello, target.currentState());
37 assertEquals(world, target.matches("world"));
38 assertEquals(world, target.currentState());
39 assertEquals(finalize, target.finalizeState());
40 assertEquals(finalize, target.currentState());
41 }
42
43 @Test
44 public void trueTest() {
45 IHeaderMatcher one = new TestingMatcher("one", true);
46 IHeaderMatcher two = new TestingMatcher("two", false, true);
47 AndMatcher target = new AndMatcher("Testing", Arrays.asList(one, two));
48 assertValues(target, State.i, State.t, State.t);
49 target.reset();
50 assertEquals(State.i, one.currentState());
51 assertEquals(State.i, two.currentState());
52 assertEquals(State.i, target.currentState());
53 }
54
55 @Test
56 public void falseTest() {
57 IHeaderMatcher one = new TestingMatcher("one", true);
58 IHeaderMatcher two = new TestingMatcher("two", false, false);
59 AndMatcher target = new AndMatcher("Testing", Arrays.asList(one, two));
60 assertValues(target, State.i, State.i, State.f);
61 target.reset();
62 assertEquals(State.i, one.currentState());
63 assertEquals(State.i, two.currentState());
64 assertEquals(State.i, target.currentState());
65 }
66
67 @Test
68 public void indeterminentTest() {
69 IHeaderMatcher one = new TestingMatcher("one", false, false);
70 IHeaderMatcher two = new TestingMatcher("two", false, false);
71 AndMatcher target = new AndMatcher("Testing", Arrays.asList(one, two));
72 assertValues(target, State.i, State.i, State.f);
73 target.reset();
74 assertEquals(State.i, one.currentState());
75 assertEquals(State.i, two.currentState());
76 assertEquals(State.i, target.currentState());
77 }
78 }