1   package test.net.sourceforge.pmd.rules;
2   
3   import net.sourceforge.pmd.PMD;
4   import net.sourceforge.pmd.Rule;
5   import net.sourceforge.pmd.RuleSetNotFoundException;
6   import test.net.sourceforge.pmd.testframework.SimpleAggregatorTst;
7   import test.net.sourceforge.pmd.testframework.TestDescriptor;
8   
9   public class NonCaseLabelInSwitchStatementRuleTest extends SimpleAggregatorTst {
10      private Rule rule;
11  
12      public void setUp() throws RuleSetNotFoundException {
13          rule = findRule("rulesets/design.xml", "NonCaseLabelInSwitchStatement");
14      }
15  
16      public void testAll() {
17         runTests(new TestDescriptor[] {
18             new TestDescriptor(TEST1, "label inside switch", 1, rule),
19             new TestDescriptor(TEST2, "ok", 0, rule),
20         });
21      }
22  
23      private static final String TEST1 =
24      "public class Foo {" + PMD.EOL +
25      " void bar(int x) {" + PMD.EOL +
26      "  switch (x) {" + PMD.EOL +
27      "   case 2: int y=8;" + PMD.EOL +
28      "    break;" + PMD.EOL +
29      "   somelabel: " + PMD.EOL +
30      "    break;" + PMD.EOL +
31      "   default: " + PMD.EOL +
32      "    int j=8;" + PMD.EOL +
33      "  }" + PMD.EOL +
34      " }" + PMD.EOL +
35      "}";
36  
37      private static final String TEST2 =
38      "public class Foo {" + PMD.EOL +
39      " void bar(int x) {" + PMD.EOL +
40      "  switch (x) {" + PMD.EOL +
41      "   case 2: int y=8;" + PMD.EOL +
42      "    break;" + PMD.EOL +
43      "   default: " + PMD.EOL +
44      "    int j=8;" + PMD.EOL +
45      "  }" + PMD.EOL +
46      " }" + PMD.EOL +
47      "}";
48  }