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.Rule;
8   import net.sourceforge.pmd.RuleSetNotFoundException;
9   import net.sourceforge.pmd.rules.design.LongClassRule;
10  import test.net.sourceforge.pmd.testframework.SimpleAggregatorTst;
11  import test.net.sourceforge.pmd.testframework.TestDescriptor;
12  
13  public class LongClassRuleTest extends SimpleAggregatorTst {
14  
15      private Rule rule;
16  
17      public void setUp() throws RuleSetNotFoundException {
18          rule = findRule("codesize", "ExcessiveClassLength");
19          rule.addProperty("minimum", "10");
20      }
21  
22      public void testAll() {
23         runTests(new TestDescriptor[] {
24             new TestDescriptor(TEST0, "short", 0, rule),
25             new TestDescriptor(TEST1, "long", 1, rule),
26         });
27      }
28  
29      public void testLongClassWithLongerTest() throws Throwable {
30          LongClassRule IUT = new LongClassRule();
31          IUT.addProperty("minimum", "2000");
32          runTestFromString(TEST1, 0, IUT);
33      }
34  
35      private static final String TEST0 =
36      "public class Foo {" + PMD.EOL +
37      "    public static void main(String args[]) {" + PMD.EOL +
38      "	  int x;" + PMD.EOL +
39      "    }" + PMD.EOL +
40      "}";
41  
42      private static final String TEST1 =
43      "public class Foo {" + PMD.EOL +
44      "    public void bar() {" + PMD.EOL +
45      "	  bar();" + PMD.EOL +
46      "	  bar();" + PMD.EOL +
47      "	  bar();" + PMD.EOL +
48      "	  bar();" + PMD.EOL +
49      "	  bar();" + PMD.EOL +
50      "	  bar();" + PMD.EOL +
51      "	  bar();" + PMD.EOL +
52      "	  bar();" + PMD.EOL +
53      "	  bar();" + PMD.EOL +
54      "	  bar();" + PMD.EOL +
55      "    }" + PMD.EOL +
56      "}";
57  }
58