1 package integrationTests;
2
3 import static org.junit.jupiter.api.Assertions.assertFalse;
4 import static org.junit.jupiter.api.Assertions.assertTrue;
5
6 import org.junit.jupiter.api.MethodOrderer;
7 import org.junit.jupiter.api.Test;
8 import org.junit.jupiter.api.TestMethodOrder;
9
10 @TestMethodOrder(MethodOrderer.MethodName.class)
11 class BooleanExpressionsTest extends CoverageTest {
12 BooleanExpressions tested;
13
14 @Test
15 void evalBuggyCombination() {
16
17
18 assertTrue(tested.eval1(true, false, 1));
19
20
21 }
22
23 @Test
24 void evalOnlySomeCombinations() {
25 assertTrue(tested.eval1(true, true, 0));
26 assertFalse(tested.eval1(true, false, 0));
27
28
29 }
30
31 @Test
32 void evalAllCombinations() {
33 assertTrue(tested.eval2(true, true, 0));
34 assertTrue(tested.eval2(true, false, 1));
35 assertFalse(tested.eval2(true, false, 0));
36 assertFalse(tested.eval2(false, true, 0));
37
38
39 }
40
41 @Test
42 void evalAllPaths() {
43 assertFalse(tested.eval3(false, true, false));
44 assertTrue(tested.eval3(true, true, false));
45 assertTrue(tested.eval3(true, false, true));
46 assertFalse(tested.eval3(true, false, false));
47
48
49 }
50
51 @Test
52 void evalOnlyFirstAndSecondBranches() {
53 assertFalse(tested.eval4(false, true, false));
54 assertFalse(tested.eval4(false, false, false));
55 assertFalse(tested.eval4(false, true, true));
56 assertFalse(tested.eval4(false, false, true));
57 assertTrue(tested.eval4(true, false, false));
58 assertTrue(tested.eval4(true, false, true));
59
60
61 }
62
63 @Test
64 void eval5() {
65 assertFalse(tested.eval5(false, true, true));
66 assertTrue(tested.eval5(false, false, false));
67
68
69 }
70
71 @Test
72 void methodWithComplexExpressionWhichCallsAnotherInSameClass() {
73 BooleanExpressions.isSameTypeIgnoringAutoBoxing(int.class, Integer.class);
74
75
76 }
77
78 @Test
79 void trivialMethodWhichReturnsBooleanInput() {
80 assertTrue(tested.simplyReturnsInput(true));
81 assertFalse(tested.simplyReturnsInput(false));
82
83 assertLine(137, 1, 1, 2);
84 }
85
86 @Test
87 void methodWhichReturnsNegatedBoolean() {
88 assertTrue(tested.returnsNegatedInput(false));
89
90
91 }
92
93 @Test
94 void methodWithIfElseAndTrivialTernaryOperator() {
95 assertTrue(tested.returnsTrivialResultFromInputAfterIfElse(false, 1));
96 assertFalse(tested.returnsTrivialResultFromInputAfterIfElse(true, 0));
97 }
98
99 @Test
100 void methodWithTrivialTernaryOperatorAndTrivialIfElse() {
101 assertTrue(tested.returnsResultPreviouslyComputedFromInput(false, 1));
102 assertFalse(tested.returnsResultPreviouslyComputedFromInput(false, 0));
103 assertTrue(tested.returnsResultPreviouslyComputedFromInput(true, 1));
104 assertTrue(tested.returnsResultPreviouslyComputedFromInput(true, -1));
105
106 assertLines(185, 195, 6);
107 assertLine(185, 3, 3, 4, 2, 2);
108 assertLine(188, 1, 1, 4, 3);
109 assertLine(191, 1, 1, 1);
110 assertLine(192, 1, 1, 1);
111 assertLine(195, 1, 1, 4);
112 }
113 }