TestRepository: Allow custom author/committer per-commit

Change-Id: I078fe00470ebe60f93f4a718c163dd1412fdc776
This commit is contained in:
Dave Borowitz 2015-03-11 11:28:15 -07:00
parent 6599111d92
commit 3d5e70bc5a
1 changed files with 32 additions and 9 deletions

View File

@ -106,9 +106,9 @@
* type of Repository the test data is stored on.
*/
public class TestRepository<R extends Repository> {
private static final PersonIdent author;
private static final PersonIdent defaultAuthor;
private static final PersonIdent committer;
private static final PersonIdent defaultCommitter;
static {
final MockSystemReader m = new MockSystemReader();
@ -117,11 +117,11 @@ public class TestRepository<R extends Repository> {
final String an = "J. Author";
final String ae = "jauthor@example.com";
author = new PersonIdent(an, ae, now, tz);
defaultAuthor = new PersonIdent(an, ae, now, tz);
final String cn = "J. Committer";
final String ce = "jcommitter@example.com";
committer = new PersonIdent(cn, ce, now, tz);
defaultCommitter = new PersonIdent(cn, ce, now, tz);
}
private final R db;
@ -191,8 +191,8 @@ public void tick(final int secDelta) {
* the commit builder to store.
*/
public void setAuthorAndCommitter(org.eclipse.jgit.lib.CommitBuilder c) {
c.setAuthor(new PersonIdent(author, new Date(now)));
c.setCommitter(new PersonIdent(committer, new Date(now)));
c.setAuthor(new PersonIdent(defaultAuthor, new Date(now)));
c.setCommitter(new PersonIdent(defaultCommitter, new Date(now)));
}
/**
@ -370,8 +370,8 @@ public RevCommit commit(final int secDelta, final RevTree tree,
c = new org.eclipse.jgit.lib.CommitBuilder();
c.setTreeId(tree);
c.setParentIds(parents);
c.setAuthor(new PersonIdent(author, new Date(now)));
c.setCommitter(new PersonIdent(committer, new Date(now)));
c.setAuthor(new PersonIdent(defaultAuthor, new Date(now)));
c.setCommitter(new PersonIdent(defaultCommitter, new Date(now)));
c.setMessage("");
ObjectId id;
try (ObjectInserter ins = inserter) {
@ -406,7 +406,7 @@ public RevTag tag(final String name, final RevObject dst) throws Exception {
final TagBuilder t = new TagBuilder();
t.setObjectId(dst);
t.setTag(name);
t.setTagger(new PersonIdent(committer, new Date(now)));
t.setTagger(new PersonIdent(defaultCommitter, new Date(now)));
t.setMessage("");
ObjectId id;
try (ObjectInserter ins = inserter) {
@ -746,6 +746,9 @@ public class CommitBuilder {
private RevCommit self;
private PersonIdent author;
private PersonIdent committer;
CommitBuilder() {
branch = null;
}
@ -837,6 +840,22 @@ public CommitBuilder tick(int secs) {
return this;
}
public CommitBuilder ident(PersonIdent ident) {
author = ident;
committer = ident;
return this;
}
public CommitBuilder author(PersonIdent a) {
author = a;
return this;
}
public CommitBuilder committer(PersonIdent c) {
committer = c;
return this;
}
public RevCommit create() throws Exception {
if (self == null) {
TestRepository.this.tick(tick);
@ -846,6 +865,10 @@ public RevCommit create() throws Exception {
c = new org.eclipse.jgit.lib.CommitBuilder();
c.setParentIds(parents);
setAuthorAndCommitter(c);
if (author != null)
c.setAuthor(author);
if (committer != null)
c.setCommitter(committer);
c.setMessage(message);
ObjectId commitId;