1 /***
2 * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
3 */
4 package test.net.sourceforge.pmd.rules;
5
6 import net.sourceforge.pmd.PMD;
7 import net.sourceforge.pmd.Report;
8 import net.sourceforge.pmd.Rule;
9 import net.sourceforge.pmd.RuleSetNotFoundException;
10 import test.net.sourceforge.pmd.testframework.SimpleAggregatorTst;
11 import test.net.sourceforge.pmd.testframework.TestDescriptor;
12
13 public class ForLoopShouldBeWhileLoopRuleTest extends SimpleAggregatorTst {
14
15 private Rule rule;
16
17 public void setUp() throws RuleSetNotFoundException {
18 rule = findRule("basic", "ForLoopShouldBeWhileLoop");
19 }
20
21 public void testAll() {
22 runTests(new TestDescriptor[]{
23 new TestDescriptor(TEST1, "simple failure case", 1, rule),
24 new TestDescriptor(TEST2, "ok", 0, rule),
25 new TestDescriptor(TEST3, "for loop like this: for (;;) {} ", 0, rule),
26 });
27 }
28
29 public void testJDK15ForLoop() throws Throwable {
30 Report rpt = new Report();
31 runTestFromString15(TEST4, rule, rpt);
32 assertEquals(0, rpt.size());
33 }
34
35 private static final String TEST1 =
36 "public class Foo {" + PMD.EOL +
37 " void foo() {" + PMD.EOL +
38 " int x = 2;" + PMD.EOL +
39 " for (;x<5;) { " + PMD.EOL +
40 " x++;" + PMD.EOL +
41 " }" + PMD.EOL +
42 " }" + PMD.EOL +
43 "}";
44
45 private static final String TEST2 =
46 "public class Foo {" + PMD.EOL +
47 " void foo() {" + PMD.EOL +
48 " for (int x=2;x<5;) { " + PMD.EOL +
49 " x++;" + PMD.EOL +
50 " }" + PMD.EOL +
51 " }" + PMD.EOL +
52 "}";
53
54 private static final String TEST3 =
55 "public class Foo {" + PMD.EOL +
56 " void foo() {" + PMD.EOL +
57 " for (;;) {}" + PMD.EOL +
58 " }" + PMD.EOL +
59 "}";
60
61 private static final String TEST4 =
62 "public class Foo {" + PMD.EOL +
63 " void foo() {" + PMD.EOL +
64 " for (String x : mylist) {}" + PMD.EOL +
65 " }" + PMD.EOL +
66 "}";
67
68 }