commit 2b737a9894543c78794f7e4f023d94908813629c Author: Sven Selberg Date: Thu Oct 1 07:54:13 2020 +0200 TestProjectCreation: add owners setting Change-Id: I3364c044338663326ab11b1f748495d50bbd9d43 diff --git a/java/com/google/gerrit/acceptance/testsuite/project/ProjectOperationsImpl.java b/java/com/google/gerrit/acceptance/testsuite/project/ProjectOperationsImpl.java index 80d8c09..8cb20bb 100644 --- a/java/com/google/gerrit/acceptance/testsuite/project/ProjectOperationsImpl.java +++ b/java/com/google/gerrit/acceptance/testsuite/project/ProjectOperationsImpl.java @@ -96,7 +96,7 @@ public class ProjectOperationsImpl implements ProjectOperations { args.createEmptyCommit = projectCreation.createEmptyCommit().orElse(true); projectCreation.parent().ifPresent(p -> args.newParent = p); // ProjectCreator wants non-null owner IDs. - args.ownerIds = new ArrayList<>(); + args.ownerIds = new ArrayList<>(projectCreation.owners()); projectCreation.submitType().ifPresent(st -> args.submitType = st); projectCreator.createProject(args); return Project.nameKey(name); diff --git a/java/com/google/gerrit/acceptance/testsuite/project/TestProjectCreation.java b/java/com/google/gerrit/acceptance/testsuite/project/TestProjectCreation.java index cb68d7a..3bbb8db 100644 --- a/java/com/google/gerrit/acceptance/testsuite/project/TestProjectCreation.java +++ b/java/com/google/gerrit/acceptance/testsuite/project/TestProjectCreation.java @@ -14,8 +14,12 @@ package com.google.gerrit.acceptance.testsuite.project; +import static java.util.Objects.requireNonNull; + import com.google.auto.value.AutoValue; +import com.google.common.collect.ImmutableSet; import com.google.gerrit.acceptance.testsuite.ThrowingFunction; +import com.google.gerrit.entities.AccountGroup; import com.google.gerrit.entities.Project; import com.google.gerrit.extensions.client.SubmitType; import java.util.Optional; @@ -33,6 +37,8 @@ public abstract class TestProjectCreation { public abstract Optional submitType(); + public abstract ImmutableSet owners(); + abstract ThrowingFunction projectCreator(); public static Builder builder( @@ -57,6 +63,13 @@ public abstract class TestProjectCreation { return createEmptyCommit(false); } + public TestProjectCreation.Builder addOwner(AccountGroup.UUID owner) { + ownersBuilder().add(requireNonNull(owner, "owner")); + return this; + } + + abstract ImmutableSet.Builder ownersBuilder(); + abstract TestProjectCreation.Builder projectCreator( ThrowingFunction projectCreator); diff --git a/javatests/com/google/gerrit/acceptance/testsuite/project/ProjectOperationsImplTest.java b/javatests/com/google/gerrit/acceptance/testsuite/project/ProjectOperationsImplTest.java index 246d764..91f815b 100644 --- a/javatests/com/google/gerrit/acceptance/testsuite/project/ProjectOperationsImplTest.java +++ b/javatests/com/google/gerrit/acceptance/testsuite/project/ProjectOperationsImplTest.java @@ -38,8 +38,10 @@ import static java.util.stream.Collectors.toList; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableListMultimap; import com.google.gerrit.acceptance.AbstractDaemonTest; +import com.google.gerrit.acceptance.testsuite.group.GroupOperations; import com.google.gerrit.acceptance.testsuite.project.TestProjectUpdate.TestPermission; import com.google.gerrit.common.data.Permission; +import com.google.gerrit.entities.AccountGroup; import com.google.gerrit.entities.Project; import com.google.gerrit.entities.RefNames; import com.google.gerrit.extensions.api.projects.BranchInfo; @@ -57,6 +59,7 @@ import org.junit.Test; public class ProjectOperationsImplTest extends AbstractDaemonTest { @Inject private ProjectOperations projectOperations; + @Inject private GroupOperations groupsOperations; @Test public void defaultName() throws Exception { @@ -92,6 +95,13 @@ public class ProjectOperationsImplTest extends AbstractDaemonTest { } @Test + public void createWithOwners() throws Exception { + AccountGroup.UUID uuid = groupsOperations.newGroup().create(); + Project.NameKey key = projectOperations.newProject().addOwner(uuid).create(); + assertPermissions(key, groupRef(uuid), "refs/*", false, Permission.OWNER); + } + + @Test public void getProjectConfig() throws Exception { Project.NameKey key = projectOperations.newProject().create(); assertThat(projectOperations.project(key).getProjectConfig().getProject().getDescription())