import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
-
import java.util.Date;
import java.util.HashMap;
import java.util.List;
/**
* Last committer of the line, can be null.
- * @param lineIndex starts at 0
*/
@CheckForNull
- public String lineAuthor(@Nullable Integer lineIndex) {
+ public String lineAuthor(@Nullable Integer lineNumber) {
loadIfNeeded();
- if (lineIndex == null) {
+ if (lineNumber == null) {
// issue on file, approximately estimate that author is the last committer on the file
return lastCommitAuthor;
}
String author = null;
- if (lineIndex < scm.getChangesetIndexByLineCount()) {
- BatchReport.Changesets.Changeset changeset = scm.getChangeset(scm.getChangesetIndexByLine(lineIndex));
+ if (lineNumber <= scm.getChangesetIndexByLineCount()) {
+ BatchReport.Changesets.Changeset changeset = scm.getChangeset(scm.getChangesetIndexByLine(lineNumber-1));
author = changeset.hasAuthor() ? changeset.getAuthor() : null;
}
sut.init("ANY_UUID", 123_456_789, new BatchReportReader(dir));
- assertThat(sut.lineAuthor(0)).isEqualTo("charb");
assertThat(sut.lineAuthor(1)).isEqualTo("charb");
- assertThat(sut.lineAuthor(2)).isEqualTo("wolinski");
- // compute last author
+ assertThat(sut.lineAuthor(2)).isEqualTo("charb");
assertThat(sut.lineAuthor(3)).isEqualTo("wolinski");
+ // compute last author
+ assertThat(sut.lineAuthor(4)).isEqualTo("wolinski");
assertThat(sut.lineAuthor(null)).isEqualTo("wolinski");
}
sut.init("DEFAULT_UUID", 123, new BatchReportReader(dir));
- assertThat(sut.lineAuthor(0)).isEqualTo("cabu");
assertThat(sut.lineAuthor(1)).isEqualTo("cabu");
assertThat(sut.lineAuthor(2)).isEqualTo("cabu");
- assertThat(sut.lineAuthor(3)).isEqualTo("wolinski");
- assertThat(sut.lineAuthor(4)).isEqualTo("cabu");
- assertThat(sut.lineAuthor(5)).isEqualTo("wolinski");
+ assertThat(sut.lineAuthor(3)).isEqualTo("cabu");
+ assertThat(sut.lineAuthor(4)).isEqualTo("wolinski");
+ assertThat(sut.lineAuthor(5)).isEqualTo("cabu");
+ assertThat(sut.lineAuthor(6)).isEqualTo("wolinski");
}
@Test(expected = IllegalStateException.class)
.setDate(date);
}
- private SourceLineDoc newSourceLine(String author, String revision, long date, int line) {
+ private SourceLineDoc newSourceLine(String author, String revision, long date, int lineNumber) {
return new SourceLineDoc()
.setScmAuthor(author)
.setScmRevision(revision)
.setScmDate(new Date(date))
- .setLine(line)
+ .setLine(lineNumber)
.setProjectUuid("PROJECT_UUID")
.setFileUuid("DEFAULT_UUID");
}