1   /***
2    * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
3   */
4   package test.net.sourceforge.pmd.rules.design;
5   
6   import net.sourceforge.pmd.PMD;
7   import net.sourceforge.pmd.rules.design.SwitchDensityRule;
8   import test.net.sourceforge.pmd.testframework.RuleTst;
9   
10  /***
11   * @author dpeugh
12   *
13   * This tests the new SwitchDensity rule to see if it really
14   * does work.
15   */
16  public class SwitchDensityTest extends RuleTst {
17  
18      private static final String TEST1 =
19      "// Switch Density = 5.0" + PMD.EOL +
20      "public class SwitchDensity1 {" + PMD.EOL +
21      "       public void foo(int i) {" + PMD.EOL +
22      "               switch (i) {" + PMD.EOL +
23      "                       case 0:" + PMD.EOL +
24      "                       {" + PMD.EOL +
25      "                               System.err.println(\"I am a fish.\");" + PMD.EOL +
26      "                               System.err.println(\"I am a fish.\");" + PMD.EOL +
27      "                               System.err.println(\"I am a fish.\");" + PMD.EOL +
28      "                               System.err.println(\"I am a fish.\");" + PMD.EOL +
29      "                               System.err.println(\"I am a fish.\");" + PMD.EOL +
30      "                       }" + PMD.EOL +
31      "               }                               " + PMD.EOL +
32      "       }" + PMD.EOL +
33      "}";
34  
35      private static final String TEST2 =
36      "// Switch Density = 1.0" + PMD.EOL +
37      "public class SwitchDensity2 {" + PMD.EOL +
38      "       public void foo(int i) {" + PMD.EOL +
39      "               switch (i) {" + PMD.EOL +
40      "                       case 0:" + PMD.EOL +
41      "                       {" + PMD.EOL +
42      "                               System.err.println(\"I am a fish.\");" + PMD.EOL +
43      "                       }" + PMD.EOL +
44      "               }                               " + PMD.EOL +
45      "       }" + PMD.EOL +
46      "}";
47  
48      private static final String TEST3 =
49      "// Switch Density = 1.0" + PMD.EOL +
50      "public class SwitchDensity3 {" + PMD.EOL +
51      "       public void foo(int i) {" + PMD.EOL +
52      "               switch (i) {" + PMD.EOL +
53      "                       case 0:" + PMD.EOL +
54      "                       case 1:" + PMD.EOL +
55      "                       case 2:" + PMD.EOL +
56      "                       case 3:" + PMD.EOL +
57      "                       case 4:" + PMD.EOL +
58      "                       {" + PMD.EOL +
59      "                               System.err.println(\"I am a fish.\");" + PMD.EOL +
60      "                               System.err.println(\"I am a fish.\");" + PMD.EOL +
61      "                               System.err.println(\"I am a fish.\");" + PMD.EOL +
62      "                               System.err.println(\"I am a fish.\");" + PMD.EOL +
63      "                               System.err.println(\"I am a fish.\");" + PMD.EOL +
64      "                       }" + PMD.EOL +
65      "               }                               " + PMD.EOL +
66      "       }" + PMD.EOL +
67      "}";
68  
69      public SwitchDensityTest() {
70          super();
71      }
72  
73      public SwitchDensityRule getIUT() {
74          SwitchDensityRule RC = new SwitchDensityRule();
75          RC.addProperty("minimum", "4");
76          return RC;
77      }
78  
79      public void testSD1() throws Throwable {
80          runTestFromString(TEST1, 1, getIUT());
81      }
82  
83      public void testSD2() throws Throwable {
84          runTestFromString(TEST2, 0, getIUT());
85      }
86  
87      public void testSD3() throws Throwable {
88          runTestFromString(TEST3, 0, getIUT());
89      }
90  }