summaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit.junit/src
diff options
context:
space:
mode:
authorShawn Pearce <spearce@spearce.org>2015-03-12 13:11:20 -0400
committerGerrit Code Review @ Eclipse.org <gerrit@eclipse.org>2015-03-12 13:11:21 -0400
commitc3b8615ce895301f12e6d90a0e273512f145b2e5 (patch)
treed6818ccd18785f2f557cb67b175ed558c7333e65 /org.eclipse.jgit.junit/src
parentede4b3d5a36fcea35a53a3186fd6ea3cbb6cb337 (diff)
parent3d5e70bc5a821406558544bb9854f1a5b0ff53b7 (diff)
downloadjgit-c3b8615ce895301f12e6d90a0e273512f145b2e5.tar.gz
jgit-c3b8615ce895301f12e6d90a0e273512f145b2e5.zip
Merge topic 'testrepo'
* changes: TestRepository: Allow custom author/committer per-commit TestRepository: Use try-with-resources where appropriate
Diffstat (limited to 'org.eclipse.jgit.junit/src')
-rw-r--r--org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/TestRepository.java173
1 files changed, 90 insertions, 83 deletions
diff --git a/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/TestRepository.java b/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/TestRepository.java
index b30fa59bd8..687076f103 100644
--- a/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/TestRepository.java
+++ b/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/TestRepository.java
@@ -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)));
}
/**
@@ -217,11 +217,9 @@ public class TestRepository<R extends Repository> {
*/
public RevBlob blob(final byte[] content) throws Exception {
ObjectId id;
- try {
- id = inserter.insert(Constants.OBJ_BLOB, content);
- inserter.flush();
- } finally {
- inserter.release();
+ try (ObjectInserter ins = inserter) {
+ id = ins.insert(Constants.OBJ_BLOB, content);
+ ins.flush();
}
return pool.lookupBlob(id);
}
@@ -260,11 +258,9 @@ public class TestRepository<R extends Repository> {
b.add(e);
b.finish();
ObjectId root;
- try {
- root = dc.writeTree(inserter);
- inserter.flush();
- } finally {
- inserter.release();
+ try (ObjectInserter ins = inserter) {
+ root = dc.writeTree(ins);
+ ins.flush();
}
return pool.lookupTree(root);
}
@@ -281,18 +277,19 @@ public class TestRepository<R extends Repository> {
*/
public RevObject get(final RevTree tree, final String path)
throws Exception {
- final TreeWalk tw = new TreeWalk(pool.getObjectReader());
- tw.setFilter(PathFilterGroup.createFromStrings(Collections
- .singleton(path)));
- tw.reset(tree);
- while (tw.next()) {
- if (tw.isSubtree() && !path.equals(tw.getPathString())) {
- tw.enterSubtree();
- continue;
+ try (TreeWalk tw = new TreeWalk(pool.getObjectReader())) {
+ tw.setFilter(PathFilterGroup.createFromStrings(Collections
+ .singleton(path)));
+ tw.reset(tree);
+ while (tw.next()) {
+ if (tw.isSubtree() && !path.equals(tw.getPathString())) {
+ tw.enterSubtree();
+ continue;
+ }
+ final ObjectId entid = tw.getObjectId(0);
+ final FileMode entmode = tw.getFileMode(0);
+ return pool.lookupAny(entid, entmode.getObjectType());
}
- final ObjectId entid = tw.getObjectId(0);
- final FileMode entmode = tw.getFileMode(0);
- return pool.lookupAny(entid, entmode.getObjectType());
}
fail("Can't find " + path + " in tree " + tree.name());
return null; // never reached.
@@ -373,15 +370,13 @@ 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 {
- id = inserter.insert(c);
- inserter.flush();
- } finally {
- inserter.release();
+ try (ObjectInserter ins = inserter) {
+ id = ins.insert(c);
+ ins.flush();
}
return pool.lookupCommit(id);
}
@@ -411,14 +406,12 @@ 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 {
- id = inserter.insert(t);
- inserter.flush();
- } finally {
- inserter.release();
+ try (ObjectInserter ins = inserter) {
+ id = ins.insert(t);
+ ins.flush();
}
return (RevTag) pool.lookupAny(id, Constants.OBJ_TAG);
}
@@ -581,34 +574,35 @@ public class TestRepository<R extends Repository> {
*/
public void fsck(RevObject... tips) throws MissingObjectException,
IncorrectObjectTypeException, IOException {
- ObjectWalk ow = new ObjectWalk(db);
- if (tips.length != 0) {
- for (RevObject o : tips)
- ow.markStart(ow.parseAny(o));
- } else {
- for (Ref r : db.getAllRefs().values())
- ow.markStart(ow.parseAny(r.getObjectId()));
- }
+ try (ObjectWalk ow = new ObjectWalk(db)) {
+ if (tips.length != 0) {
+ for (RevObject o : tips)
+ ow.markStart(ow.parseAny(o));
+ } else {
+ for (Ref r : db.getAllRefs().values())
+ ow.markStart(ow.parseAny(r.getObjectId()));
+ }
- ObjectChecker oc = new ObjectChecker();
- for (;;) {
- final RevCommit o = ow.next();
- if (o == null)
- break;
+ ObjectChecker oc = new ObjectChecker();
+ for (;;) {
+ final RevCommit o = ow.next();
+ if (o == null)
+ break;
- final byte[] bin = db.open(o, o.getType()).getCachedBytes();
- oc.checkCommit(bin);
- assertHash(o, bin);
- }
+ final byte[] bin = db.open(o, o.getType()).getCachedBytes();
+ oc.checkCommit(bin);
+ assertHash(o, bin);
+ }
- for (;;) {
- final RevObject o = ow.nextObject();
- if (o == null)
- break;
+ for (;;) {
+ final RevObject o = ow.nextObject();
+ if (o == null)
+ break;
- final byte[] bin = db.open(o, o.getType()).getCachedBytes();
- oc.check(o.getType(), bin);
- assertHash(o, bin);
+ final byte[] bin = db.open(o, o.getType()).getCachedBytes();
+ oc.check(o.getType(), bin);
+ assertHash(o, bin);
+ }
}
}
@@ -636,35 +630,27 @@ public class TestRepository<R extends Repository> {
NullProgressMonitor m = NullProgressMonitor.INSTANCE;
final File pack, idx;
- PackWriter pw = new PackWriter(db);
- try {
+ try (PackWriter pw = new PackWriter(db)) {
Set<ObjectId> all = new HashSet<ObjectId>();
for (Ref r : db.getAllRefs().values())
all.add(r.getObjectId());
pw.preparePack(m, all, Collections.<ObjectId> emptySet());
final ObjectId name = pw.computeName();
- OutputStream out;
pack = nameFor(odb, name, ".pack");
- out = new SafeBufferedOutputStream(new FileOutputStream(pack));
- try {
+ try (OutputStream out =
+ new SafeBufferedOutputStream(new FileOutputStream(pack))) {
pw.writePack(m, m, out);
- } finally {
- out.close();
}
pack.setReadOnly();
idx = nameFor(odb, name, ".idx");
- out = new SafeBufferedOutputStream(new FileOutputStream(idx));
- try {
+ try (OutputStream out =
+ new SafeBufferedOutputStream(new FileOutputStream(idx))) {
pw.writeIndex(out);
- } finally {
- out.close();
}
idx.setReadOnly();
- } finally {
- pw.release();
}
odb.openPack(pack);
@@ -760,6 +746,9 @@ public class TestRepository<R extends Repository> {
private RevCommit self;
+ private PersonIdent author;
+ private PersonIdent committer;
+
CommitBuilder() {
branch = null;
}
@@ -851,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);
@@ -860,18 +865,20 @@ 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;
- try {
+ try (ObjectInserter ins = inserter) {
if (topLevelTree != null)
c.setTreeId(topLevelTree);
else
- c.setTreeId(tree.writeTree(inserter));
- commitId = inserter.insert(c);
- inserter.flush();
- } finally {
- inserter.release();
+ c.setTreeId(tree.writeTree(ins));
+ commitId = ins.insert(c);
+ ins.flush();
}
self = pool.lookupCommit(commitId);