package hudson.plugins.emma; /** * @author Kohsuke Kawaguchi */ public class CoverageReportTest extends AbstractEmmaTestBase { public void testLoad() throws Exception { CoverageReport r = new CoverageReport(null, getClass().getResourceAsStream("coverage.xml")); PackageReport pkg = r.getChildren().get("com.sun.tools.javac.v8.resources"); assertRatio(pkg.getLineCoverage(),3,12); assertEquals(8346.3f, r.getLineCoverage().getNumerator()); } public void testLoadMultipleReports() throws Exception { CoverageReport r = new CoverageReport(null, getClass().getResourceAsStream("coverage.xml"), getClass().getResourceAsStream("coverageh.xml")); assertRatio(r.getLineCoverage(), 8355.3f, 14828.0f); PackageReport pkg = r.getChildren().get("com.sun.tools.javac.v8.resources"); assertRatio(pkg.getLineCoverage(),3,12); pkg = r.getChildren().get("org.apache.hupa.client.validation"); assertRatio(pkg.getLineCoverage(), 9,27); } public void testTreeReport() throws Exception { CoverageReport r = new CoverageReport(null,getClass().getResourceAsStream("coverageh.xml")); assertRatio(r.getLineCoverage(), 9, 1693); PackageReport pkg = r.getChildren().get("org.apache.hupa.client.validation"); assertRatio(pkg.getLineCoverage(), 9, 27); SourceFileReport src = pkg.getChildren().get("EmailListValidator.java"); assertRatio(src.getLineCoverage(), 9, 18); ClassReport clz = src.getChildren().get("EmailListValidator"); assertRatio(clz.getLineCoverage(), 9, 18); assertTrue(clz.hasClassCoverage()); MethodReport mth = clz.getChildren().get("isValidAddress (String): boolean"); assertRatio(mth.getLineCoverage(), 1, 1); assertFalse(mth.hasClassCoverage()); mth = clz.getChildren().get("Foo (): void"); assertRatio(mth.getLineCoverage(), 0, 0); assertFalse(mth.hasClassCoverage()); assertFalse(mth.hasLineCoverage()); } public void testEmptyPackage() throws Exception { CoverageReport r = new CoverageReport(null,getClass().getResourceAsStream("coverage.xml")); PackageReport pkg = r.getChildren().get("an.empty.package"); assertRatio(pkg.getLineCoverage(), 0, 0); assertFalse(pkg.hasChildren()); assertFalse(pkg.hasChildrenClassCoverage()); assertFalse(pkg.hasChildrenLineCoverage()); pkg = r.getChildren().get("an.package.without.lines"); assertRatio(pkg.getLineCoverage(), 0, 0); assertTrue(pkg.hasChildren()); assertFalse(pkg.hasChildrenClassCoverage()); assertFalse(pkg.hasChildrenLineCoverage()); } }