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