    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.RuleSetNotFoundException;
    9   import test.net.sourceforge.pmd.testframework.SimpleAggregatorTst;
    10  import test.net.sourceforge.pmd.testframework.TestDescriptor;
    11
    12  public class FinalizeShouldBeProtectedRuleTest extends SimpleAggregatorTst {
    13
    14      private Rule rule;
    15
    16      public void setUp() throws RuleSetNotFoundException {
    17          rule = findRule("finalizers", "FinalizeShouldBeProtected");
    18      }
    19
    20      public void testAll() {
    21          runTests(new TestDescriptor[]{
    22              new TestDescriptor(TEST1, "public finalize", 1, rule),
    23              new TestDescriptor(TEST2, "finalize with some params", 0, rule),
    24              new TestDescriptor(TEST3, "legitimate overriding", 0, rule)
    25          });
    26      }
    27
    28      private static final String TEST1 =
    29              "public class Foo {" + PMD.EOL +
    30              " public void finalize() {}" + PMD.EOL +
    31              "}";
    32
    33      private static final String TEST2 =
    34              "public class Foo {" + PMD.EOL +
    35              " public void finalize(int x) {}" + PMD.EOL +
    36              "}";
    37
    38      private static final String TEST3 =
    39              "public class Foo {" + PMD.EOL +
    40              " protected void finalize() {}" + PMD.EOL +
    41              "}";
    42
    43  }