1 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.Report.ProcessingError; 10 import net.sourceforge.pmd.ast.ASTClassOrInterfaceDeclaration; 11 import net.sourceforge.pmd.ast.SimpleNode; 12 import net.sourceforge.pmd.renderers.AbstractRenderer; 13 import test.net.sourceforge.pmd.testframework.RuleTst; 14 15 public abstract class AbstractRendererTst extends RuleTst { 16 17 private static class FooRule extends AbstractRule { 18 public Object visit(ASTClassOrInterfaceDeclaration c, Object ctx) { 19 if (c.getImage().equals("Foo")) 20 addViolation(ctx, c); 21 return ctx; 22 } 23 public String getMessage() { return "msg"; } 24 public String getName() { return "Foo"; } 25 public String getRuleSetName() { return "RuleSet"; } 26 public String getDescription() { return "desc"; } 27 } 28 29 private static class FooRule2 extends FooRule { 30 public Object visit(ASTClassOrInterfaceDeclaration c, Object ctx) { 31 if (c.getImage().equals("Foo")) { 32 addViolation(ctx, c); 33 addViolation(ctx, (SimpleNode) c.jjtGetChild(0)); 34 } 35 return ctx; 36 } 37 } 38 39 public abstract AbstractRenderer getRenderer(); 40 41 public abstract String getExpected(); 42 43 public abstract String getExpectedEmpty(); 44 45 public abstract String getExpectedMultiple(); 46 47 public String getExpectedError(ProcessingError error) { 48 return ""; 49 } 50 51 public void testNullPassedIn() { 52 try { 53 getRenderer().render(null); 54 fail("Providing a render(null) should throw an npx"); 55 } catch (NullPointerException npx) { 56 } 58 } 59 60 public void testRenderer() throws Throwable { 61 Report rep = new Report(); 62 runTestFromString(TEST1, new FooRule(), rep); 63 String actual = getRenderer().render(rep); 64 assertEquals(actual, getExpected()); 65 } 66 67 public void testRendererEmpty() throws Throwable { 68 Report rep = new Report(); 69 String actual = getRenderer().render(rep); 70 assertEquals(actual, getExpectedEmpty()); 71 } 72 73 public void testRendererMultiple() throws Throwable { 74 Report rep = new Report(); 75 runTestFromString(TEST1, new FooRule2(), rep); 76 String actual = getRenderer().render(rep); 77 assertEquals(actual, getExpectedMultiple()); 78 } 79 80 public void testError() throws Throwable { 81 Report rep = new Report(); 82 Report.ProcessingError err = new Report.ProcessingError("Error", "file"); 83 rep.addError(err); 84 String actual = getRenderer().render(rep); 85 assertEquals(actual, getExpectedError(err)); 86 } 87 88 private static final String TEST1 = "public class Foo {}" + PMD.EOL; 89 } 90 | Popular Tags |