1
2 package test/net/sourceforge/pmd/package-summary.html">> test.net.sourceforge.pmd;
3
4 import java.io.StringReader;
5
6 import net.sourceforge.pmd.PMD;
7 import net.sourceforge.pmd.Report;
8 import net.sourceforge.pmd.Rule;
9 import net.sourceforge.pmd.RuleContext;
10 import net.sourceforge.pmd.RuleSet;
11 import net.sourceforge.pmd.RuleSets;
12 import net.sourceforge.pmd.SourceTypeToRuleLanguageMapper;
13 import test.net.sourceforge.pmd.testframework.RuleTst;
14 import test.net.sourceforge.pmd.testframework.TestDescriptor;
15
16 public class ExcludeLinesTest extends RuleTst {
17 private Rule rule;
18
19 public void setUp() {
20 rule = findRule("unusedcode", "UnusedLocalVariable");
21 }
22
23 public void testAcceptance() {
24 runTest(new TestDescriptor(TEST1, "NOPMD should work", 0, rule));
25 runTest(new TestDescriptor(TEST2, "Should fail without exclude marker", 1, rule));
26 }
27
28 public void testAlternateMarker() throws Throwable {
29 PMD p = new PMD();
30 p.setExcludeMarker("FOOBAR");
31 RuleContext ctx = new RuleContext();
32 Report r = new Report();
33 ctx.setReport(r);
34 ctx.setSourceCodeFilename("n/a");
35 RuleSet rules = new RuleSet();
36 rules.addRule(rule);
37 rules.setLanguage(SourceTypeToRuleLanguageMapper.getMappedLanguage(DEFAULT_SOURCE_TYPE));
38 p.processFile(new StringReader(TEST3), new RuleSets(rules), ctx, DEFAULT_SOURCE_TYPE);
39 assertTrue(r.isEmpty());
40 assertEquals(r.getSuppressedRuleViolations().size(), 1);
41 }
42
43 private static final String TEST1 =
44 "public class Foo {" + PMD.EOL +
45 " void foo() {" + PMD.EOL +
46 " int x; //NOPMD " + PMD.EOL +
47 " } " + PMD.EOL +
48 "}";
49
50 private static final String TEST2 =
51 "public class Foo {" + PMD.EOL +
52 " void foo() {" + PMD.EOL +
53 " int x;" + PMD.EOL +
54 " } " + PMD.EOL +
55 "}";
56
57 private static final String TEST3 =
58 "public class Foo {" + PMD.EOL +
59 " void foo() {" + PMD.EOL +
60 " int x; // FOOBAR" + PMD.EOL +
61 " } " + PMD.EOL +
62 "}";
63
64 }