]> source.dussan.org Git - jgit.git/commitdiff
TestRepository: Allow custom author/committer per-commit 98/43698/1
authorDave Borowitz <dborowitz@google.com>
Wed, 11 Mar 2015 18:28:15 +0000 (11:28 -0700)
committerDave Borowitz <dborowitz@google.com>
Wed, 11 Mar 2015 18:41:02 +0000 (11:41 -0700)
Change-Id: I078fe00470ebe60f93f4a718c163dd1412fdc776

org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/TestRepository.java

index 4f14b52bc359bcaff2c160859f7a0f396aa4a992..687076f1030f80ceeb5f4eae2849c38244320cee 100644 (file)
@@ -106,9 +106,9 @@ import org.eclipse.jgit.util.io.SafeBufferedOutputStream;
  *            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 class TestRepository<R extends Repository> {
         *            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 class TestRepository<R extends Repository> {
                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 class TestRepository<R extends Repository> {
                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 TestRepository<R extends Repository> {
 
                private RevCommit self;
 
+               private PersonIdent author;
+               private PersonIdent committer;
+
                CommitBuilder() {
                        branch = null;
                }
@@ -837,6 +840,22 @@ public class TestRepository<R extends Repository> {
                        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 class TestRepository<R extends Repository> {
                                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;