diff options
Diffstat (limited to 'gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/AbstractSubmoduleSubscription.java')
-rw-r--r-- | gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/AbstractSubmoduleSubscription.java | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/AbstractSubmoduleSubscription.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/AbstractSubmoduleSubscription.java index 42463c7d20..c89ad5e492 100644 --- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/AbstractSubmoduleSubscription.java +++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/AbstractSubmoduleSubscription.java @@ -15,6 +15,7 @@ package com.google.gerrit.acceptance.git; import static com.google.common.truth.Truth.assertThat; +import static java.util.stream.Collectors.toList; import com.google.common.collect.Iterables; import com.google.gerrit.acceptance.AbstractDaemonTest; @@ -25,7 +26,9 @@ import com.google.gerrit.extensions.client.SubmitType; import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.server.git.MetaDataUpdate; import com.google.gerrit.server.git.ProjectConfig; +import java.util.List; import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.StreamSupport; import org.eclipse.jgit.junit.TestRepository; import org.eclipse.jgit.lib.Config; import org.eclipse.jgit.lib.ObjectId; @@ -87,8 +90,8 @@ public abstract class AbstractSubmoduleSubscription extends AbstractDaemonTest { SubmitType submitType) throws Exception { Project.NameKey project = createProject(name, parent, createEmptyCommit, submitType); - grant(Permission.PUSH, project, "refs/heads/*"); - grant(Permission.SUBMIT, project, "refs/for/refs/heads/*"); + grant(project, "refs/heads/*", Permission.PUSH); + grant(project, "refs/for/refs/heads/*", Permission.SUBMIT); return cloneProject(project); } @@ -141,6 +144,31 @@ public abstract class AbstractSubmoduleSubscription extends AbstractDaemonTest { return pushChangeTo(repo, "refs/heads/" + branch, "some change", ""); } + protected ObjectId pushChangesTo(TestRepository<?> repo, String branch, int numChanges) + throws Exception { + for (int i = 0; i < numChanges; i++) { + repo.branch("HEAD") + .commit() + .insertChangeId() + .message("Message " + i) + .add(name("file"), "content" + i) + .create(); + } + String remoteBranch = "refs/heads/" + branch; + Iterable<PushResult> res = + repo.git() + .push() + .setRemote("origin") + .setRefSpecs(new RefSpec("HEAD:" + remoteBranch)) + .call(); + List<Status> status = + StreamSupport.stream(res.spliterator(), false) + .map(r -> r.getRemoteUpdate(remoteBranch).getStatus()) + .collect(toList()); + assertThat(status).containsExactly(Status.OK); + return Iterables.getLast(res).getRemoteUpdate(remoteBranch).getNewObjectId(); + } + protected void allowSubmoduleSubscription( String submodule, String subBranch, String superproject, String superBranch, boolean match) throws Exception { |