@Test public void testMergeDifferentLineNumbers() { firstClass.addLine(2, "helloWorld", "()V"); firstClass.addLine(3, "helloWorld", "()V"); greenProject.addClassData(firstClass); firstClassB.addLine(1, "helloWorld", "()V"); firstClassB.addLine(5, "helloWorld", "()V"); redProject.addClassData(firstClassB); greenProject.merge(redProject); ClassData cd = greenProject.getClassData("test.First"); assertNotNull(cd); assertEquals(4, cd.getNumberOfValidLines()); assertEquals(2, redProject.getClassData("test.First").getNumberOfValidLines()); Iterator lines = cd.getLines().iterator(); LineData line1 = (LineData) lines.next(); assertEquals(1, line1.getLineNumber()); LineData line2 = (LineData) lines.next(); assertEquals(2, line2.getLineNumber()); LineData line3 = (LineData) lines.next(); assertEquals(3, line3.getLineNumber()); LineData line5 = (LineData) lines.next(); assertEquals(5, line5.getLineNumber()); assertFalse(lines.hasNext()); }
@Test public void testMergeSimillarLineNumbers() { firstClass.addLine(2, "helloWorld", "()V"); firstClass.touch(2, 1); firstClass.touch(2, 1); firstClass.addLine(3, "helloWorld", "()V"); greenProject.addClassData(firstClass); firstClassB.addLine(2, "helloWorld", "()V"); firstClassB.touch(2, 1); firstClassB.touch(2, 1); firstClassB.touch(2, 1); firstClassB.addLine(3, "helloWorld", "()V"); firstClassB.touch(3, 1); firstClassB.addLine(7, "helloWorld", "()V"); redProject.addClassData(firstClassB); greenProject.merge(redProject); ClassData cd = greenProject.getClassData("test.First"); assertNotNull(cd); assertEquals(3, cd.getNumberOfValidLines()); assertEquals(3, redProject.getClassData("test.First").getNumberOfValidLines()); Iterator lines = cd.getLines().iterator(); LineData line2 = (LineData) lines.next(); assertEquals(2, line2.getLineNumber()); assertEquals(5, line2.getHits()); LineData line3 = (LineData) lines.next(); assertEquals(3, line3.getLineNumber()); assertEquals(1, line3.getHits()); LineData line7 = (LineData) lines.next(); assertEquals(7, line7.getLineNumber()); assertEquals(0, line7.getHits()); assertFalse(lines.hasNext()); }
private static void _assertClassDataCoverage( List<AssertionError> assertionErrors, Class<?> clazz, ClassData classData) { if (clazz.isInterface() || clazz.isSynthetic()) { return; } if (classData == null) { assertionErrors.add(new AssertionError("Class " + clazz.getName() + " has no coverage data")); return; } if ((classData.getBranchCoverageRate() != 1.0) || (classData.getLineCoverageRate() != 1.0)) { System.out.printf( "%n[Cobertura] %s is not fully covered.%n[Cobertura]Branch " + "coverage rate : %.2f, line coverage rate : %.2f.%n" + "[Cobertura]Please rerun test with -Djunit.code." + "coverage=true to see coverage report.%n", classData.getName(), classData.getBranchCoverageRate(), classData.getLineCoverageRate()); Set<CoverageData> coverageDatas = classData.getLines(); for (CoverageData coverageData : coverageDatas) { if (!(coverageData instanceof LineData)) { continue; } LineData lineData = (LineData) coverageData; if (lineData.isCovered()) { continue; } System.out.printf( "[Cobertura] %s line %d is not covered %n", classData.getName(), lineData.getLineNumber()); } assertionErrors.add(new AssertionError(classData.getName() + " is not fully covered")); return; } System.out.printf("[Cobertura] %s is fully covered.%n", classData.getName()); }
private void dumpLine(LineData lineData) { int lineNumber = lineData.getLineNumber(); long hitCount = lineData.getHits(); boolean hasBranch = lineData.hasBranch(); String conditionCoverage = lineData.getConditionCoverage(); String lineInfo = "<line number=\"" + lineNumber + "\" hits=\"" + hitCount + "\" branch=\"" + hasBranch + "\""; if (hasBranch) { println(lineInfo + " condition-coverage=\"" + conditionCoverage + "\">"); dumpConditions(lineData); println("</line>"); } else { println(lineInfo + "/>"); } }