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