View Javadoc

1   
2    package net.sourceforge.pmd;
3    
4    import static org.junit.Assert.assertEquals;
5   import static org.junit.Assert.assertTrue;
6   
7   import java.io.StringReader;
8   
9   import junit.framework.JUnit4TestAdapter;
10  import net.sourceforge.pmd.PMD;
11  import net.sourceforge.pmd.Report;
12  import net.sourceforge.pmd.Rule;
13  import net.sourceforge.pmd.RuleContext;
14  import net.sourceforge.pmd.RuleSet;
15  import net.sourceforge.pmd.RuleSets;
16  import net.sourceforge.pmd.testframework.RuleTst;
17  import net.sourceforge.pmd.testframework.TestDescriptor;
18  
19  import org.junit.Before;
20  import org.junit.Test;
21  
22  
23   public class ExcludeLinesTest extends RuleTst {
24       private Rule rule;
25   
26       @Before 
27       public void setUp() {
28           rule = findRule("java-unusedcode", "UnusedLocalVariable");
29       }
30   
31       @Test
32       public void testAcceptance() {
33           runTest(new TestDescriptor(TEST1, "NOPMD should work", 0, rule));
34           runTest(new TestDescriptor(TEST2, "Should fail without exclude marker", 1, rule));
35       }
36   
37       @Test
38       public void testAlternateMarker() throws Throwable {
39           PMD p = new PMD();
40           p.getConfiguration().setSuppressMarker("FOOBAR");
41           RuleContext ctx = new RuleContext();
42           Report r = new Report();
43           ctx.setReport(r);
44           ctx.setSourceCodeFilename("n/a");
45           ctx.setLanguageVersion(DEFAULT_LANGUAGE_VERSION);
46           RuleSet rules = new RuleSet();
47           rules.addRule(rule);
48           p.getSourceCodeProcessor().processSourceCode(new StringReader(TEST3), new RuleSets(rules), ctx);
49           assertTrue(r.isEmpty());
50           assertEquals(r.getSuppressedRuleViolations().size(), 1);
51       }
52   
53       private static final String TEST1 =
54               "public class Foo {" + PMD.EOL +
55               " void foo() {" + PMD.EOL +
56               "  int x; //NOPMD " + PMD.EOL +
57               " } " + PMD.EOL +
58               "}";
59   
60       private static final String TEST2 =
61               "public class Foo {" + PMD.EOL +
62               " void foo() {" + PMD.EOL +
63               "  int x;" + PMD.EOL +
64               " } " + PMD.EOL +
65               "}";
66   
67       private static final String TEST3 =
68               "public class Foo {" + PMD.EOL +
69               " void foo() {" + PMD.EOL +
70               "  int x; // FOOBAR" + PMD.EOL +
71               " } " + PMD.EOL +
72               "}";
73  
74      public static junit.framework.Test suite() {
75          return new JUnit4TestAdapter(ExcludeLinesTest.class);
76      }
77  }