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 }