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.Report; 9 import test.net.sourceforge.pmd.testframework.SimpleAggregatorTst; 10 import test.net.sourceforge.pmd.testframework.TestDescriptor; 11 12 public class CallSuperInConstructorTest extends SimpleAggregatorTst { 13 14 private Rule rule; 15 16 public void setUp() { 17 rule = findRule("controversial", "CallSuperInConstructor"); 18 } 19 20 public void testAll() { 21 runTests(new TestDescriptor[]{ 22 new TestDescriptor(TEST1, "TEST1", 0, rule), 23 new TestDescriptor(TEST2, "TEST2", 0, rule), 24 new TestDescriptor(TEST3, "don't flag classes w/o extends", 0, rule), 25 }); 26 } 27 28 public void testEnum() throws Throwable { 29 Report rpt = new Report(); 30 runTestFromString15(TEST4, rule, rpt); 31 assertTrue(rpt.isEmpty()); 32 } 33 34 private static final String TEST1 = 35 "public class Foo {" + PMD.EOL + 36 " public Foo() {" + PMD.EOL + 37 " super();" + PMD.EOL + 38 "}" + PMD.EOL + 39 "}"; 40 41 private static final String TEST2 = 42 "public class Foo {" + PMD.EOL + 43 " public Foo(Object o) {" + PMD.EOL + 44 " this();" + PMD.EOL + 45 "}" + PMD.EOL + 46 " public Foo() {" + PMD.EOL + 47 " super();" + PMD.EOL + 48 "}" + PMD.EOL + 49 "}"; 50 51 private static final String TEST3 = 52 "public class Foo {" + PMD.EOL + 53 " public Foo() {" + PMD.EOL + 54 " int x = 2;" + PMD.EOL + 55 "}" + PMD.EOL + 56 "}"; 57 58 private static final String TEST4 = 59 "public class Bar extends Buz {" + PMD.EOL + 60 " public static enum Foo {" + PMD.EOL + 61 " ;" + PMD.EOL + 62 " public Foo() {}" + PMD.EOL + 63 " }" + PMD.EOL + 64 "}"; 65 66 }