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 test.net.sourceforge.pmd.testframework.SimpleAggregatorTst;
10 import test.net.sourceforge.pmd.testframework.TestDescriptor;
11
12 public class ExcessiveMethodLengthTest extends SimpleAggregatorTst {
13
14 private Rule rule;
15
16 public void setUp() throws RuleSetNotFoundException {
17 rule = findRule("codesize", "ExcessiveMethodLength");
18 rule.addProperty("minimum", "10");
19 }
20
21 public void testAll() {
22 runTests(new TestDescriptor[]{
23 new TestDescriptor(TEST1, "short", 0, rule),
24 new TestDescriptor(TEST2, "long", 1, rule),
25 new TestDescriptor(TEST3, "not quite long", 0, rule),
26 new TestDescriptor(TEST4, "long", 1, rule),
27 });
28 }
29
30 public void testReallyLongMethodWithLongerRange() throws Throwable {
31 Rule r = findRule("codesize", "ExcessiveMethodLength");
32 r.addProperty("minimum", "20");
33 runTestFromString(TEST2, 0, r);
34 }
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 private static final String TEST1 =
51 "public class Foo {" + PMD.EOL +
52 " public static void main(String args[]) {" + PMD.EOL +
53 " bar();" + PMD.EOL +
54 " }" + PMD.EOL +
55 "}";
56
57 private static final String TEST2 =
58 "public class Foo {" + PMD.EOL +
59 " public static void main(String args[]) {" + PMD.EOL +
60 " bar();" + PMD.EOL +
61 " bar();" + PMD.EOL +
62 " bar();" + PMD.EOL +
63 " bar();" + PMD.EOL +
64 " bar();" + PMD.EOL +
65 " bar();" + PMD.EOL +
66 " bar();" + PMD.EOL +
67 " bar();" + PMD.EOL +
68 " bar();" + PMD.EOL +
69 " bar();" + PMD.EOL +
70 " bar();" + PMD.EOL +
71 " } // 11 lines - violation" + PMD.EOL +
72 "}";
73
74 private static final String TEST3 =
75 "public class Foo {" + PMD.EOL +
76 " public static void main(String args[]) {" + PMD.EOL +
77 " bar();" + PMD.EOL +
78 " bar();" + PMD.EOL +
79 " bar();" + PMD.EOL +
80 " bar();" + PMD.EOL +
81 " bar();" + PMD.EOL +
82 " bar();" + PMD.EOL +
83 " bar();" + PMD.EOL +
84 " bar();" + PMD.EOL +
85 " } // 9 lines - Not a violation" + PMD.EOL +
86 "}";
87
88 private static final String TEST4 =
89 "public class Foo {" + PMD.EOL +
90 " public static void main(String args[]) {" + PMD.EOL +
91 " bar();" + PMD.EOL +
92 " bar();" + PMD.EOL +
93 " bar();" + PMD.EOL +
94 " bar();" + PMD.EOL +
95 " bar();" + PMD.EOL +
96 " bar();" + PMD.EOL +
97 " bar();" + PMD.EOL +
98 " bar();" + PMD.EOL +
99 " bar();" + PMD.EOL +
100 " bar();" + PMD.EOL +
101 " bar();" + PMD.EOL +
102 " bar();" + PMD.EOL +
103 " bar();" + PMD.EOL +
104 " bar();" + PMD.EOL +
105 " bar();" + PMD.EOL +
106 " } // > 10 lines - Not a violation" + PMD.EOL +
107 "}";
108
109 private static final String TEST5 =
110 "public class Foo {" + PMD.EOL +
111 " void foo1() {" + PMD.EOL +
112 " bar();" + PMD.EOL +
113 " bar();" + PMD.EOL +
114 " baz();" + PMD.EOL +
115 " }" + PMD.EOL +
116 " void foo2() {" + PMD.EOL +
117 " bar();" + PMD.EOL +
118 " bar();" + PMD.EOL +
119 " baz();" + PMD.EOL +
120 " }" + PMD.EOL +
121 " void foo3() {" + PMD.EOL +
122 " bar();" + PMD.EOL +
123 " bar();" + PMD.EOL +
124 " baz();" + PMD.EOL +
125 " }" + PMD.EOL +
126 " void foo4() {" + PMD.EOL +
127 " bar();" + PMD.EOL +
128 " bar();" + PMD.EOL +
129 " baz();" + PMD.EOL +
130 " }" + PMD.EOL +
131 "}";
132
133 }
134