1 /***
2 * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
3 */
4 package test.net.sourceforge.pmd.renderers;
5
6 import net.sourceforge.pmd.AbstractRule;
7 import net.sourceforge.pmd.PMD;
8 import net.sourceforge.pmd.Report;
9 import net.sourceforge.pmd.ast.ASTClassOrInterfaceDeclaration;
10 import net.sourceforge.pmd.renderers.TextPadRenderer;
11 import test.net.sourceforge.pmd.testframework.RuleTst;
12
13 public class TextPadRendererTest extends RuleTst {
14
15 private static class FooRule extends AbstractRule {
16 public Object visit(ASTClassOrInterfaceDeclaration c, Object ctx) {
17 if (c.getImage().equals("Foo")) addViolation(ctx, c);
18 return ctx;
19 }
20
21 public String getMessage() {
22 return "msg";
23 }
24
25 public String getName() {
26 return "Foo";
27 }
28
29 public String getRuleSetName() {
30 return "RuleSet";
31 }
32
33 public String getDescription() {
34 return "desc";
35 }
36 }
37
38
39 public void testNullPassedIn() {
40 try {
41 (new TextPadRenderer()).render(null);
42 fail("Providing a render(null) should throw an npx");
43 } catch (NullPointerException npx) {
44
45 }
46 }
47
48 public void testRenderer() throws Throwable {
49 Report rep = new Report();
50 runTestFromString(TEST1, new FooRule(), rep);
51 String actual = (new TextPadRenderer()).render(rep);
52 String expected = PMD.EOL + "n/a(1, Foo): msg";
53 assertEquals(expected, actual);
54 }
55
56 private static final String TEST1 =
57 "public class Foo {}" + PMD.EOL;
58 }
59
60
61
62
63
64
65
66
67