@Test public void nothing_to_do_when_no_coverage_info() { CoverageLineReader computeCoverageLine = new CoverageLineReader(Collections.<ScannerReport.LineCoverage>emptyList().iterator()); DbFileSources.Line.Builder lineBuilder = DbFileSources.Data.newBuilder().addLinesBuilder().setLine(1); assertThat(computeCoverageLine.read(lineBuilder)).isEmpty(); assertThat(lineBuilder.hasLineHits()).isFalse(); assertThat(lineBuilder.hasConditions()).isFalse(); assertThat(lineBuilder.hasCoveredConditions()).isFalse(); }
private DbScmInfo createDbScmInfoWithOneLine(String hash) { Line line1 = Line.newBuilder().setLine(1) .setScmRevision("rev1") .setScmAuthor("author1") .setScmDate(10L) .build(); DbScmInfo scmInfo = DbScmInfo.create(Collections.singleton(line1), hash).get(); when(dbLoader.getScmInfo(FILE)).thenReturn(Optional.of(scmInfo)); return scmInfo; }
@Test public void set_coverage_on_uncovered_lines() { CoverageLineReader computeCoverageLine = new CoverageLineReader(newArrayList(ScannerReport.LineCoverage.newBuilder() .setLine(1) .setHits(false) .build()).iterator()); DbFileSources.Line.Builder lineBuilder = DbFileSources.Data.newBuilder().addLinesBuilder().setLine(1); assertThat(computeCoverageLine.read(lineBuilder)).isEmpty(); assertThat(lineBuilder.hasLineHits()).isTrue(); assertThat(lineBuilder.getLineHits()).isEqualTo(0); }
@Test public void raw_from_file() { ComponentDto project = db.components().insertPrivateProject(); userSession.addProjectPermission(UserRole.CODEVIEWER, project); ComponentDto file = db.components().insertComponent(newFileDto(project)); db.fileSources().insertFileSource(file, s -> s.setSourceData( Data.newBuilder() .addLines(Line.newBuilder().setLine(1).setSource("public class HelloWorld {").build()) .addLines(Line.newBuilder().setLine(2).setSource("}").build()) .build())); String result = ws.newRequest() .setParam("key", file.getKey()) .execute().getInput(); assertThat(result).isEqualTo("public class HelloWorld {\n}\n"); }
@Test public void set_coverage() { CoverageLineReader computeCoverageLine = new CoverageLineReader(newArrayList(ScannerReport.LineCoverage.newBuilder() .setLine(1) .setConditions(10) .setHits(true) .setCoveredConditions(2) .build()).iterator()); DbFileSources.Line.Builder lineBuilder = DbFileSources.Data.newBuilder().addLinesBuilder().setLine(1); assertThat(computeCoverageLine.read(lineBuilder)).isEmpty(); assertThat(lineBuilder.getLineHits()).isEqualTo(1); assertThat(lineBuilder.getConditions()).isEqualTo(10); assertThat(lineBuilder.getCoveredConditions()).isEqualTo(2); }
@Test public void set_scm_with_minim_fields() { ScmInfo scmInfo = new ScmInfoImpl(Collections.singletonMap(1, Changeset.newChangesetBuilder() .setDate(123456789L) .build())); ScmLineReader lineScm = new ScmLineReader(scmInfo); DbFileSources.Line.Builder lineBuilder = DbFileSources.Data.newBuilder().addLinesBuilder().setLine(1); assertThat(lineScm.read(lineBuilder)).isEmpty(); assertThat(lineBuilder.hasScmAuthor()).isFalse(); assertThat(lineBuilder.getScmDate()).isEqualTo(123456789L); assertThat(lineBuilder.hasScmRevision()).isFalse(); }
private static void addLine(DbFileSources.Data.Builder dataBuilder, Integer line, String author, Long date, String revision) { dataBuilder.addLinesBuilder() .setLine(line) .setScmAuthor(author) .setScmDate(date) .setScmRevision(revision); }
@Test public void should_support_having_no_author() throws Exception { DbFileSources.Data.Builder fileDataBuilder = DbFileSources.Data.newBuilder(); // gets filtered out fileDataBuilder.addLinesBuilder().setScmAuthor("John").setLine(1); fileDataBuilder.addLinesBuilder().setScmRevision("rev").setScmDate(555L).setLine(2); fileDataBuilder.build(); assertThat(DbScmInfo.create(fileDataBuilder.getLinesList(), "hash").get().getAllChangesets()).hasSize(1); assertThat(DbScmInfo.create(fileDataBuilder.getLinesList(), "hash").get().getChangesetForLine(2).getAuthor()).isNull(); }
@Test public void return_same_changeset_objects_for_lines_with_same_fields() throws Exception { DbFileSources.Data.Builder fileDataBuilder = DbFileSources.Data.newBuilder(); fileDataBuilder.addLinesBuilder().setScmRevision("rev").setScmDate(65L).setLine(1); fileDataBuilder.addLinesBuilder().setScmRevision("rev2").setScmDate(6541L).setLine(2); fileDataBuilder.addLinesBuilder().setScmRevision("rev1").setScmDate(6541L).setLine(3); fileDataBuilder.addLinesBuilder().setScmRevision("rev").setScmDate(65L).setLine(4); ScmInfo scmInfo = DbScmInfo.create(fileDataBuilder.getLinesList(), "hash").get(); assertThat(scmInfo.getAllChangesets()).hasSize(4); assertThat(scmInfo.getChangesetForLine(1)).isSameAs(scmInfo.getChangesetForLine(4)); }
private static DbFileSources.Data newData(String... lines) { DbFileSources.Data.Builder dataBuilder = DbFileSources.Data.newBuilder(); for (int i = 1; i <= lines.length; i++) { dataBuilder.addLinesBuilder() .setLine(i) .setSource(lines[i - 1]) .build(); } return dataBuilder.build(); }
@Test public void filter_out_entries_without_date() throws Exception { DbFileSources.Data.Builder fileDataBuilder = DbFileSources.Data.newBuilder(); fileDataBuilder.addLinesBuilder().setScmRevision("rev").setScmDate(555L).setLine(1); fileDataBuilder.addLinesBuilder().setScmRevision("rev-1").setLine(2); fileDataBuilder.build(); assertThat(DbScmInfo.create(fileDataBuilder.getLinesList(), "hash").get().getAllChangesets()).hasSize(1); assertThat(DbScmInfo.create(fileDataBuilder.getLinesList(), "hash").get().getChangesetForLine(1).getRevision()).isEqualTo("rev"); }
private DbFileSources.Line.Builder[] runReader(LineReader reader) { DbFileSources.Line.Builder[] builders = new DbFileSources.Line.Builder[3]; for (int i = 1; i <= 3; i++) { builders[i - 1] = DbFileSources.Line.newBuilder() .setLine(i); reader.read(builders[i - 1]); } return builders; } }
@Test public void set_coverage_only_conditions() { CoverageLineReader computeCoverageLine = new CoverageLineReader(newArrayList(ScannerReport.LineCoverage.newBuilder() .setLine(1) .setConditions(10) .setCoveredConditions(2) .build()).iterator()); DbFileSources.Line.Builder lineBuilder = DbFileSources.Data.newBuilder().addLinesBuilder().setLine(1); assertThat(computeCoverageLine.read(lineBuilder)).isEmpty(); assertThat(lineBuilder.hasLineHits()).isFalse(); assertThat(lineBuilder.getConditions()).isEqualTo(10); }
private static DbFileSources.Data createOver64MBDataStructure() { DbFileSources.Data.Builder dataBuilder = DbFileSources.Data.newBuilder(); DbFileSources.Line.Builder lineBuilder = DbFileSources.Line.newBuilder(); for (int i = 0; i < 199999; i++) { dataBuilder.addLines( lineBuilder.setSource(LOREM_IPSUM) .setLine(i) .build()); } return dataBuilder.build(); }
@Test public void should_support_some_lines_not_having_scm_info() throws Exception { DbFileSources.Data.Builder fileDataBuilder = DbFileSources.Data.newBuilder(); fileDataBuilder.addLinesBuilder().setScmRevision("rev").setScmDate(543L).setLine(1); fileDataBuilder.addLinesBuilder().setLine(2); fileDataBuilder.build(); assertThat(DbScmInfo.create(fileDataBuilder.getLinesList(), "hash").get().getAllChangesets()).hasSize(1); }
@Test public void return_absent_dsm_info_when_no_changeset() { DbFileSources.Data.Builder fileDataBuilder = DbFileSources.Data.newBuilder(); fileDataBuilder.addLinesBuilder().setLine(1); assertThat(DbScmInfo.create(fileDataBuilder.getLinesList(), "hash")).isNotPresent(); }
private void readLineAndAssertLatestChanges(ScmLineReader lineScm, int line, Changeset expectedChangeset, Changeset expectedChangesetWithRevision) { DbFileSources.Line.Builder lineBuilder = DbFileSources.Data.newBuilder().addLinesBuilder().setLine(line); assertThat(lineScm.read(lineBuilder)).isEmpty(); assertThat(lineScm.getLatestChange()).isSameAs(expectedChangeset); assertThat(lineScm.getLatestChangeWithRevision()).isSameAs(expectedChangesetWithRevision); }
@Test public void nothing_to_read() { HighlightingLineReader highlightingLineReader = newReader(Collections.emptyMap()); DbFileSources.Line.Builder lineBuilder = newBuilder().addLinesBuilder().setLine(1); assertThat(highlightingLineReader.read(lineBuilder)).isEmpty(); assertThat(lineBuilder.hasHighlighting()).isFalse(); }
private DbFileSources.Line newSourceLine(String author, String revision, Date date, int line) { return DbFileSources.Line.newBuilder() .setScmAuthor(author) .setScmRevision(revision) .setScmDate(date.getTime()) .setLine(line) .build(); } }
private DbFileSources.Line.Builder addSourceLine(HighlightingLineReader highlightingLineReader, int line, String source) { DbFileSources.Line.Builder lineBuilder = sourceData.addLinesBuilder().setSource(source).setLine(line); assertThat(highlightingLineReader.read(lineBuilder)).isEmpty(); return lineBuilder; }