summaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit.test
diff options
context:
space:
mode:
authorDave Borowitz <dborowitz@google.com>2015-09-02 15:04:33 -0400
committerDave Borowitz <dborowitz@google.com>2015-09-02 15:17:10 -0400
commit45e9e28ad9daad3c64a16685bd9c07ed18d2ab50 (patch)
tree48ec2c694b29954f41d969d028154ef24d0c493e /org.eclipse.jgit.test
parent4a11534c25a17df3acb185ce701e921cca688b4b (diff)
downloadjgit-45e9e28ad9daad3c64a16685bd9c07ed18d2ab50.tar.gz
jgit-45e9e28ad9daad3c64a16685bd9c07ed18d2ab50.zip
PushCertificateStore: Don't add no-op command to batch
If no refs match the input list and we are writing to a batch, the returned new commit from write() will match the current commit. Adding a command to the batch for this case is harmless as it will succeed, but it's more straightforward to just skip adding a command in this case. Add tests or the combination of saving matching refs and saving to a batch. Change-Id: I6837389b08e6c80bc2d4c9e9c506d07293ea5fb2
Diffstat (limited to 'org.eclipse.jgit.test')
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/PushCertificateStoreTest.java28
1 files changed, 28 insertions, 0 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/PushCertificateStoreTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/PushCertificateStoreTest.java
index 459ca876d1..68e0129525 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/PushCertificateStoreTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/PushCertificateStoreTest.java
@@ -308,6 +308,34 @@ public class PushCertificateStoreTest {
}
@Test
+ public void putMatchingWithNoMatchingRefsInBatchOnEmptyRef()
+ throws Exception {
+ PushCertificate addMaster = newCert(
+ command(zeroId(), ID1, "refs/heads/master"),
+ command(zeroId(), ID2, "refs/heads/branch"));
+ store.put(addMaster, newIdent(), Collections.<ReceiveCommand> emptyList());
+ BatchRefUpdate batch = repo.getRefDatabase().newBatchUpdate();
+ assertFalse(store.save(batch));
+ assertEquals(0, batch.getCommands().size());
+ }
+
+ @Test
+ public void putMatchingWithNoMatchingRefsInBatchOnNonEmptyRef()
+ throws Exception {
+ PushCertificate addMaster = newCert(
+ command(zeroId(), ID1, "refs/heads/master"));
+ store.put(addMaster, newIdent());
+ assertEquals(NEW, store.save());
+
+ PushCertificate addBranch = newCert(
+ command(zeroId(), ID2, "refs/heads/branch"));
+ store.put(addBranch, newIdent(), Collections.<ReceiveCommand> emptyList());
+ BatchRefUpdate batch = repo.getRefDatabase().newBatchUpdate();
+ assertFalse(store.save(batch));
+ assertEquals(0, batch.getCommands().size());
+ }
+
+ @Test
public void putMatchingWithSomeMatchingRefs() throws Exception {
PushCertificate addMasterAndBranch = newCert(
command(zeroId(), ID1, "refs/heads/master"),