View Javadoc
1   package integrationTests.loops;
2   
3   import static java.util.Arrays.asList;
4   
5   import static org.junit.jupiter.api.Assertions.assertEquals;
6   
7   import java.util.ArrayList;
8   import java.util.List;
9   
10  import org.junit.jupiter.api.Disabled;
11  import org.junit.jupiter.api.Test;
12  
13  import integrationTests.CoverageTest;
14  
15  class ForStatementsTest extends CoverageTest {
16      ForStatements tested;
17  
18      @Test
19      void forInSeparateLines() {
20          tested.forInSeparateLines();
21          tested.forInSeparateLines();
22  
23          assertLines(9, 12, 3);
24          assertLine(9, 2, 2, 6); // TODO: should have 3 segments
25          assertLine(10, 1, 1, 4);
26          assertLine(12, 1, 1, 2);
27      }
28  
29      @Test
30      void forInSingleLine() {
31          tested.forInSingleLine(1);
32          tested.forInSingleLine(2);
33  
34          assertLines(15, 18, 2);
35          assertLine(16, 2, 2, 3); // TODO: should have 5 segments
36          assertLine(18, 1, 1, 2);
37      }
38  
39      @Test
40      void forEachArrayElement() {
41          int sum = tested.forEachArrayElement(1, 2, 3);
42          assertEquals(6, sum);
43  
44          assertLines(21, 28, 4);
45          assertLine(21, 1, 1, 1);
46          assertLine(23, 2, 2, 4);
47          assertLine(24, 1, 1, 3);
48          assertLine(27, 1, 1, 1);
49      }
50  
51      @Test
52      void forEachCollectionElement() {
53          String result = tested.forEachCollectionElement(asList("a", "b", "c"));
54          assertEquals("abc", result);
55  
56          assertLines(31, 38, 5);
57          assertLine(31, 1, 1, 1);
58          assertLine(33, 2, 2, 1);
59          assertLine(34, 1, 1, 3);
60          assertLine(37, 1, 1, 1);
61      }
62  
63      @Test
64      void forUsingIterator() {
65          List<? extends Number> numbers = new ArrayList<Number>(asList(1, 0L, 2.0));
66          tested.forUsingIterator(numbers);
67  
68          assertLines(41, 48, 6);
69          assertLine(41, 2, 2, 1);
70          assertLine(42, 1, 1, 3);
71          assertLine(44, 3, 3, 3);
72          assertLine(45, 1, 1, 1);
73          assertLine(48, 1, 1, 1);
74      }
75  
76      @Disabled("for issue #254")
77      @Test
78      void forWithNestedIfWhichReturns() {
79          tested.forWithNestedIfWhichReturns(2, 1, 2, 3);
80      }
81  }