KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > test > net > sourceforge > pmd > rules > XPathRuleTest


1
2  package test.net.sourceforge.pmd.rules;
3  
4  import java.io.StringReader JavaDoc;
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.RuleViolation;
12  import net.sourceforge.pmd.rules.XPathRule;
13  import test.net.sourceforge.pmd.testframework.RuleTst;
14  
15  /**
16   * @author daniels
17   */

18  public class XPathRuleTest extends RuleTst {
19  
20      XPathRule rule;
21  
22      public void setUp() {
23          rule = new XPathRule();
24          rule.setMessage("XPath Rule Failed");
25      }
26  
27      public void testPluginname() throws Throwable JavaDoc {
28          Rule rule = new XPathRule();
29          rule.addProperty("xpath", "//VariableDeclaratorId[string-length(@Image) < 3]");
30          rule.setMessage("{0}");
31          rule.addProperty("pluginname", "true");
32          PMD p = new PMD();
33          RuleContext ctx = new RuleContext();
34          Report report = new Report();
35          ctx.setReport(report);
36          ctx.setSourceCodeFilename("n/a");
37          RuleSet rules = new RuleSet();
38          rules.addRule(rule);
39          p.processFile(new StringReader JavaDoc(TEST1), rules, ctx);
40          RuleViolation rv = (RuleViolation) report.iterator().next();
41          assertEquals("a", rv.getDescription());
42      }
43  
44      public void testVariables() throws Throwable JavaDoc {
45          Rule rule = new XPathRule();
46          rule.addProperty("xpath", "//VariableDeclaratorId[@Image=$var]");
47          rule.setMessage("Avoid vars");
48          rule.addProperty("var", "fiddle");
49          PMD p = new PMD();
50          RuleContext ctx = new RuleContext();
51          Report report = new Report();
52          ctx.setReport(report);
53          ctx.setSourceCodeFilename("n/a");
54          RuleSet rules = new RuleSet();
55          rules.addRule(rule);
56          p.processFile(new StringReader JavaDoc(TEST2), rules, ctx);
57          RuleViolation rv = (RuleViolation) report.iterator().next();
58          assertEquals(3, rv.getBeginLine());
59      }
60  
61      private static final String JavaDoc TEST1 =
62              "public class Foo {" + PMD.EOL +
63              " int a;" + PMD.EOL +
64              "}";
65  
66      private static final String JavaDoc TEST2 =
67              "public class Foo {" + PMD.EOL +
68              " int faddle;" + PMD.EOL +
69              " int fiddle;" + PMD.EOL +
70              "}";
71  }
72
Popular Tags