1 package test.net.sourceforge.pmd.rules;
2
3 import junit.framework.TestCase;
4 import net.sourceforge.pmd.PMD;
5 import net.sourceforge.pmd.Report;
6 import net.sourceforge.pmd.Rule;
7 import net.sourceforge.pmd.RuleContext;
8 import net.sourceforge.pmd.RuleSet;
9 import net.sourceforge.pmd.util.ResourceLoader;
10
11 import java.io.StringReader;
12
13 public class RuleTst extends TestCase {
14
15 private static final String TEST_FILE_DIR = "test-data/";
16
17 public void runTestFromString(String code, int expectedResults, Rule rule) throws Throwable {
18 assertEquals(expectedResults, processUsingStringReader(code, rule).size());
19 }
20
21 public void runTestFromString(String code, Rule rule, Report report) throws Throwable {
22 PMD p = new PMD();
23 RuleContext ctx = new RuleContext();
24 ctx.setReport(report);
25 ctx.setSourceCodeFilename("n/a");
26 RuleSet rules = new RuleSet();
27 rules.addRule(rule);
28 p.processFile(new StringReader(code), rules, ctx);
29 }
30
31 public void runTestFromFile(String filename, int expectedResults, Rule rule) throws Throwable {
32 assertEquals(expectedResults, runTestFromFile(filename, rule).size());
33 }
34
35 public Report runTestFromFile(String fileName, Rule rule) throws Throwable {
36 Report report = new Report();
37 runTestFromPartialFileName(fileName, rule, report);
38 return report;
39 }
40
41 public void runTestFromFullFilename(String fullFileName, Rule rule, Report report) throws Throwable {
42 PMD p = new PMD();
43 RuleContext ctx = new RuleContext();
44 ctx.setReport(report);
45 ctx.setSourceCodeFilename(fullFileName);
46 RuleSet rules = new RuleSet();
47 rules.addRule(rule);
48 p.processFile(ResourceLoader.loadResourceAsStream(fullFileName), rules, ctx);
49 }
50
51 //////////////////////
52 private void runTestFromPartialFileName(String fileName, Rule rule, Report report) throws Throwable {
53 runTestFromFullFilename(TEST_FILE_DIR + fileName, rule, report);
54 }
55
56 private Report processUsingStringReader(String code, Rule rule) throws Throwable {
57 Report report = new Report();
58 runTestFromString(code, rule, report);
59 return report;
60 }
61 }
This page was automatically generated by Maven