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.Rule;
8 import net.sourceforge.pmd.RuleSetNotFoundException;
9 import test.net.sourceforge.pmd.testframework.SimpleAggregatorTst;
10 import test.net.sourceforge.pmd.testframework.TestDescriptor;
11
12 public class MissingBreakInSwitchTest extends SimpleAggregatorTst {
13 private Rule rule;
14
15 public void setUp() throws RuleSetNotFoundException {
16 rule = findRule("design", "MissingBreakInSwitch");
17 }
18
19 public void testAll() {
20 runTests(new TestDescriptor[]{
21 new TestDescriptor(TEST1, "one case", 1, rule),
22 new TestDescriptor(TEST2, "just skip empty switch", 0, rule),
23 new TestDescriptor(TEST3, "one break", 0, rule),
24 new TestDescriptor(TEST4, "each case stmt has a return", 0, rule),
25 });
26 }
27
28 private static final String TEST1 =
29 "public class Foo {" + PMD.EOL +
30 " void main() {" + PMD.EOL +
31 " switch(i) {" + PMD.EOL +
32 " case 1:" + PMD.EOL +
33 " default:" + PMD.EOL +
34 " }" + PMD.EOL +
35 " }" + PMD.EOL +
36 "}";
37
38 private static final String TEST2 =
39 "public class Foo {" + PMD.EOL +
40 " void main() {" + PMD.EOL +
41 " switch(i) {" + PMD.EOL +
42 " }" + PMD.EOL +
43 " }" + PMD.EOL +
44 "}";
45
46 private static final String TEST3 =
47 "public class Foo {" + PMD.EOL +
48 " void main() {" + PMD.EOL +
49 " switch(i) {" + PMD.EOL +
50 " case 1:" + PMD.EOL +
51 " case 2:" + PMD.EOL +
52 " break;" + PMD.EOL +
53 " default:" + PMD.EOL +
54 " }" + PMD.EOL +
55 " }" + PMD.EOL +
56 "}";
57
58 private static final String TEST4 =
59 "public class Foo {" + PMD.EOL +
60 " int main() {" + PMD.EOL +
61 " switch(i) {" + PMD.EOL +
62 " case '1':" + PMD.EOL +
63 " return 1;" + PMD.EOL +
64 " case '2':" + PMD.EOL +
65 " return 2;" + PMD.EOL +
66 " default:" + PMD.EOL +
67 " return 3;" + PMD.EOL +
68 " }" + PMD.EOL +
69 " }" + PMD.EOL +
70 "}";
71
72 }
73