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 AbstractClassWithoutAbstractMethodTest extends SimpleAggregatorTst {
10
11 private Rule rule;
12
13 public void setUp() throws RuleSetNotFoundException {
14 rule = findRule("design", "AbstractClassWithoutAbstractMethod");
15 }
16
17 public void testAll() {
18 runTests(new TestDescriptor[]{
19 new TestDescriptor(TEST1, "concrete class", 0, rule),
20 new TestDescriptor(TEST2, "failure case", 1, rule),
21 new TestDescriptor(TEST3, "failure case, 1 method", 1, rule),
22 new TestDescriptor(TEST4, "abstract class with abstract method", 0, rule),
23 new TestDescriptor(TEST5, "abstract class implements interface", 0, rule),
24 });
25 }
26
27 private static final String TEST1 =
28 "public class Foo {}";
29
30 private static final String TEST2 =
31 "public abstract class Foo {}";
32
33 private static final String TEST3 =
34 "public abstract class Foo {" + PMD.EOL +
35 " int bar() {} " + PMD.EOL +
36 "}";
37
38 private static final String TEST4 =
39 "public abstract class Foo {" + PMD.EOL +
40 " abstract int bar(); " + PMD.EOL +
41 "}";
42
43 private static final String TEST5 =
44 "public abstract class Foo implements Foo {" + PMD.EOL +
45 "}";
46
47 }