@Override public void publish(ScannerReportWriter writer) { for (final DefaultInputFile inputFile : componentStore.allFilesToPublish()) { Map<Integer, LineCoverage.Builder> coveragePerLine = new LinkedHashMap<>(); int lineCount = inputFile.lines(); applyLineMeasure(inputFile.key(), lineCount, CoreMetrics.COVERAGE_LINE_HITS_DATA_KEY, coveragePerLine, (value, builder) -> builder.setHits(Integer.parseInt(value) > 0)); applyLineMeasure(inputFile.key(), lineCount, CoreMetrics.CONDITIONS_BY_LINE_KEY, coveragePerLine, (value, builder) -> builder.setConditions(Integer.parseInt(value))); applyLineMeasure(inputFile.key(), lineCount, CoreMetrics.COVERED_CONDITIONS_BY_LINE_KEY, coveragePerLine, (value, builder) -> builder.setCoveredConditions(Integer.parseInt(value))); writer.writeComponentCoverage(inputFile.scannerId(), coveragePerLine.values().stream().map(BuildCoverage.INSTANCE).collect(Collectors.toList())); } }
@Before public void prepare() throws IOException { String moduleKey = "foo"; inputFile = new TestInputFileBuilder(moduleKey, "src/Foo.php").setLines(5).build(); DefaultInputProject rootModule = TestInputFileBuilder.newDefaultInputProject(moduleKey, temp.newFolder()); InputComponentStore componentCache = new InputComponentStore(mock(BranchConfiguration.class)); componentCache.put(moduleKey, inputFile); measureCache = mock(MeasureCache.class); when(measureCache.byMetric(anyString(), anyString())).thenReturn(null); publisher = new CoveragePublisher(componentCache, measureCache); }
ScannerReportWriter writer = new ScannerReportWriter(outputDir); publisher.publish(writer);
@Override public void publish(ScannerReportWriter writer) { for (final DefaultInputFile inputFile : componentStore.allFilesToPublish()) { Map<Integer, LineCoverage.Builder> coveragePerLine = new LinkedHashMap<>(); int lineCount = inputFile.lines(); applyLineMeasure(inputFile.key(), lineCount, CoreMetrics.COVERAGE_LINE_HITS_DATA_KEY, coveragePerLine, (value, builder) -> builder.setHits(Integer.parseInt(value) > 0)); applyLineMeasure(inputFile.key(), lineCount, CoreMetrics.CONDITIONS_BY_LINE_KEY, coveragePerLine, (value, builder) -> builder.setConditions(Integer.parseInt(value))); applyLineMeasure(inputFile.key(), lineCount, CoreMetrics.COVERED_CONDITIONS_BY_LINE_KEY, coveragePerLine, (value, builder) -> builder.setCoveredConditions(Integer.parseInt(value))); writer.writeComponentCoverage(inputFile.scannerId(), coveragePerLine.values().stream().map(BuildCoverage.INSTANCE).collect(Collectors.toList())); } }