1   package test.net.sourceforge.pmd.rules.strictexception;
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 AvoidCatchingNPETest extends SimpleAggregatorTst {
10  
11      private Rule rule;
12  
13      public void setUp() throws RuleSetNotFoundException {
14          rule = findRule("strictexception", "AvoidCatchingNPE");
15      }
16  
17      public void testAll() {
18         runTests(new TestDescriptor[] {
19             new TestDescriptor(TEST1, "failure case", 1, rule),
20             new TestDescriptor(TEST2, "catching another type, ok", 0, rule),
21             new TestDescriptor(TEST3, "throwing it, ok", 0, rule),
22         });
23      }
24  
25      private static final String TEST1 =
26      "public class Foo {" + PMD.EOL +
27      " void bar() {" + PMD.EOL +
28      "  try {" + PMD.EOL +
29      "  } catch (NullPointerException e) {" + PMD.EOL +
30      "  }" + PMD.EOL +
31      " }" + PMD.EOL +
32      "}";
33  
34      private static final String TEST2 =
35      "public class Foo {" + PMD.EOL +
36      " void bar() {" + PMD.EOL +
37      "  try {" + PMD.EOL +
38      "  } catch (FooException e) {" + PMD.EOL +
39      "  }" + PMD.EOL +
40      " }" + PMD.EOL +
41      "}";
42  
43      private static final String TEST3 =
44      "public class Foo {" + PMD.EOL +
45      " void bar() {" + PMD.EOL +
46      "  throw new NullPointerException();" + PMD.EOL +
47      " }" + PMD.EOL +
48      "}";
49  
50  }