1 package integrationTests.otherControlStructures;
2
3 import org.junit.jupiter.api.Test;
4
5 import integrationTests.CoverageTest;
6
7 class SwitchStatementsTest extends CoverageTest {
8 final SwitchStatements tested = new SwitchStatements();
9
10 @Test
11 void switchStatementWithSparseCasesAndDefault() {
12 tested.switchStatementWithSparseCasesAndDefault('A');
13 tested.switchStatementWithSparseCasesAndDefault('\0');
14
15 assertLines(5, 20, 5);
16 assertLine(5, 1, 1, 2);
17 assertLine(7, 1, 1, 1);
18 assertLine(8, 1, 1, 1);
19 assertLine(16, 1, 1, 1);
20 assertLine(18, 1, 0, 0);
21 assertLine(20, 1, 1, 1);
22 }
23
24 @Test
25 void switchStatementWithSparseCasesAndDefaultOnDefaultCase() {
26 tested.anotherSwitchStatementWithSparseCasesAndDefault('x');
27
28
29 }
30
31 @Test
32 void switchStatementWithCompactCasesAndDefault() {
33 tested.switchStatementWithCompactCasesAndDefault(2);
34 tested.switchStatementWithCompactCasesAndDefault(4);
35
36
37 }
38
39 @Test
40 void switchStatementWithCompactCasesAndDefaultOnDefaultCase() {
41 tested.anotherSwitchStatementWithCompactCasesAndDefault(1);
42 tested.anotherSwitchStatementWithCompactCasesAndDefault(5);
43
44 assertLines(51, 57, 4);
45 assertLine(52, 1, 1, 2);
46 assertLine(53, 1, 1, 1);
47 assertLine(54, 1, 1, 1);
48 assertLine(57, 1, 1, 2);
49 }
50
51 @Test
52 void switchStatementWithSparseCasesAndNoDefault() {
53 tested.switchStatementWithSparseCasesAndNoDefault('f');
54 tested.switchStatementWithSparseCasesAndNoDefault('b');
55
56 assertLines(60, 68, 3);
57 assertLine(60, 1, 1, 2);
58 assertLine(62, 1, 0, 0);
59 assertLine(63, 1, 0, 0);
60 assertLine(65, 1, 1, 1);
61 assertLine(66, 0, 0, 0);
62 assertLine(68, 1, 1, 2);
63 }
64
65 @Test
66 void switchStatementWithCompactCasesAndNoDefault() {
67 tested.switchStatementWithCompactCasesAndNoDefault(0);
68 tested.switchStatementWithCompactCasesAndNoDefault(4);
69 tested.switchStatementWithCompactCasesAndNoDefault(5);
70
71 assertLines(71, 81, 4);
72 assertLine(71, 1, 1, 3);
73 assertLine(74, 1, 1, 3);
74 assertLine(75, 1, 0, 0);
75 assertLine(76, 1, 0, 0);
76 assertLine(77, 1, 1, 1);
77 assertLine(81, 1, 1, 3);
78 }
79
80 @Test
81 void switchStatementWithExitInAllCases() {
82 tested.switchStatementWithExitInAllCases(1);
83 tested.switchStatementWithExitInAllCases(2);
84
85 assertLines(85, 91, 3);
86 assertLine(85, 1, 1, 2);
87 assertLine(87, 1, 1, 1);
88 assertLine(89, 1, 1, 1);
89 assertLine(91, 1, 0, 0);
90 }
91
92 @Test
93 void switchOnString() {
94 tested.switchOnString("A", true);
95 tested.switchOnString("M", false);
96
97 assertLines(96, 100, 3);
98 assertLine(96, 1, 1, 2);
99 assertLine(100, 1, 1, 1);
100 }
101 }