View Javadoc
1 package test.net.sourceforge.pmd; 2 3 import junit.framework.TestCase; 4 import net.sourceforge.pmd.Report; 5 import net.sourceforge.pmd.ReportListener; 6 import net.sourceforge.pmd.RuleContext; 7 import net.sourceforge.pmd.RuleViolation; 8 import net.sourceforge.pmd.renderers.Renderer; 9 import net.sourceforge.pmd.renderers.XMLRenderer; 10 import net.sourceforge.pmd.stat.Metric; 11 12 import java.util.Iterator; 13 14 public class ReportTest extends TestCase implements ReportListener { 15 16 private boolean violationSemaphore; 17 private boolean metricSemaphore; 18 19 public void testBasic() { 20 Report r = new Report(); 21 RuleContext ctx = new RuleContext(); 22 ctx.setSourceCodeFilename("foo"); 23 r.addRuleViolation(new RuleViolation(new MockRule("name", "desc", "msg"), 5, ctx)); 24 assertTrue(!r.isEmpty()); 25 } 26 27 public void testMetric0() { 28 Report r = new Report(); 29 assertTrue("Default report shouldn't contain metrics", !r.hasMetrics()); 30 } 31 32 public void testMetric1() { 33 Report r = new Report(); 34 assertTrue("Default report shouldn't contain metrics", !r.hasMetrics()); 35 36 r.addMetric(new Metric("m1", 0, 0.0, 1.0, 2.0, 3.0, 4.0)); 37 assertTrue("Expected metrics weren't there", r.hasMetrics()); 38 39 Iterator ms = r.metrics(); 40 assertTrue("Should have some metrics in there now", ms.hasNext()); 41 42 Object o = ms.next(); 43 assertTrue("Expected Metric, got " + o.getClass(), o instanceof Metric); 44 45 Metric m = (Metric) o; 46 assertEquals("metric name mismatch", "m1", m.getMetricName()); 47 assertEquals("wrong low value", 1.0, m.getLowValue(), 0.05); 48 assertEquals("wrong high value", 2.0, m.getHighValue(), 0.05); 49 assertEquals("wrong avg value", 3.0, m.getAverage(), 0.05); 50 assertEquals("wrong std dev value", 4.0, m.getStandardDeviation(), 0.05); 51 } 52 53 54 // Files are grouped together now. 55 public void testSortedReport_File() { 56 Report r = new Report(); 57 RuleContext ctx = new RuleContext(); 58 ctx.setSourceCodeFilename("foo"); 59 r.addRuleViolation(new RuleViolation(new MockRule("name", "desc", "msg"), 10, ctx)); 60 ctx.setSourceCodeFilename("bar"); 61 r.addRuleViolation(new RuleViolation(new MockRule("name", "desc", "msg"), 20, ctx)); 62 Renderer rend = new XMLRenderer(); 63 String result = rend.render(r); 64 assertTrue("sort order wrong", result.indexOf("bar") < result.indexOf("foo")); 65 } 66 67 public void testSortedReport_Line() { 68 Report r = new Report(); 69 RuleContext ctx = new RuleContext(); 70 ctx.setSourceCodeFilename("foo1"); 71 r.addRuleViolation(new RuleViolation(new MockRule("rule2", "rule2", "msg"), 10, ctx)); 72 ctx.setSourceCodeFilename("foo2"); 73 r.addRuleViolation(new RuleViolation(new MockRule("rule1", "rule1", "msg"), 20, ctx)); 74 Renderer rend = new XMLRenderer(); 75 String result = rend.render(r); 76 assertTrue("sort order wrong", result.indexOf("rule2") < result.indexOf("rule1")); 77 } 78 79 public void testListener() { 80 Report rpt = new Report(); 81 rpt.addListener(this); 82 violationSemaphore = false; 83 RuleContext ctx = new RuleContext(); 84 ctx.setSourceCodeFilename("file"); 85 rpt.addRuleViolation(new RuleViolation(new MockRule("name", "desc", "msg"), 5, ctx)); 86 assertTrue(violationSemaphore); 87 88 metricSemaphore = false; 89 rpt.addMetric(new Metric("test", 0, 0.0, 0.0, 0.0, 0.0, 0.0)); 90 91 assertTrue("no metric", metricSemaphore); 92 } 93 94 public void ruleViolationAdded(RuleViolation ruleViolation) { 95 violationSemaphore = true; 96 } 97 98 public void metricAdded(Metric metric) { 99 metricSemaphore = true; 100 } 101 102 }

This page was automatically generated by Maven