@CheckForNull private ScannerReport.LineCoverage getNextLineCoverageIfMatchLine(int line) { // Get next element (if exists) if (coverage == null && coverageIterator.hasNext()) { coverage = coverageIterator.next(); } // Return current element if lines match if (coverage != null && coverage.getLine() == line) { return coverage; } return null; }
@CheckForNull public ScannerReport.LineCoverage coverageFor(InputFile file, int line) { int ref = ((DefaultInputComponent) file).scannerId(); try (CloseableIterator<ScannerReport.LineCoverage> it = getReportReader().readComponentCoverage(ref)) { while (it.hasNext()) { ScannerReport.LineCoverage coverage = it.next(); if (coverage.getLine() == line) { return coverage; } } } catch (Exception e) { throw new IllegalStateException(e); } return null; }
@Test public void do_not_fail_when_calling_has_next_with_iterator_already_closed() { underTest = new ReportIterator<>(file, ScannerReport.LineCoverage.parser()); assertThat(underTest.next().getLine()).isEqualTo(1); assertThat(underTest.hasNext()).isFalse(); underTest.close(); assertThat(underTest.hasNext()).isFalse(); }
@CheckForNull public ScannerReport.LineCoverage coverageFor(InputFile file, int line) { int ref = ((DefaultInputComponent) file).scannerId(); try (CloseableIterator<ScannerReport.LineCoverage> it = getReportReader().readComponentCoverage(ref)) { while (it.hasNext()) { ScannerReport.LineCoverage coverage = it.next(); if (coverage.getLine() == line) { return coverage; } } } catch (Exception e) { throw new IllegalStateException(e); } return null; }
@CheckForNull private ScannerReport.LineCoverage getNextLineCoverageIfMatchLine(int line) { // Get next element (if exists) if (coverage == null && coverageIterator.hasNext()) { coverage = coverageIterator.next(); } // Return current element if lines match if (coverage != null && coverage.getLine() == line) { return coverage; } return null; }
@Test public void read_coverage() { ScannerReportWriter writer = new ScannerReportWriter(dir); writer.writeMetadata(ScannerReport.Metadata.newBuilder() .setRootComponentRef(1) .build()); writer.writeComponent(ScannerReport.Component.newBuilder() .setRef(1).build()); writer.writeComponentCoverage(1, asList( ScannerReport.LineCoverage.newBuilder() .setLine(1) .setConditions(1) .setHits(true) .setCoveredConditions(1) .build(), ScannerReport.LineCoverage.newBuilder() .setLine(2) .setConditions(5) .setHits(false) .setCoveredConditions(4) .build())); underTest = new ScannerReportReader(dir); try (CloseableIterator<ScannerReport.LineCoverage> it = new ScannerReportReader(dir).readComponentCoverage(1)) { ScannerReport.LineCoverage coverage = it.next(); assertThat(coverage.getLine()).isEqualTo(1); assertThat(coverage.getConditions()).isEqualTo(1); assertThat(coverage.getHits()).isTrue(); assertThat(coverage.getCoveredConditions()).isEqualTo(1); } }
@Test public void read_report() { underTest = new ReportIterator<>(file, ScannerReport.LineCoverage.parser()); assertThat(underTest.next().getLine()).isEqualTo(1); }