TestProjectCreation: add owners setting

Change-Id: I3364c044338663326ab11b1f748495d50bbd9d43
This commit is contained in:
Sven Selberg
2020-10-01 07:54:13 +02:00
parent 1dcb891435
commit 2b737a9894
3 changed files with 24 additions and 1 deletions

View File

@@ -96,7 +96,7 @@ public class ProjectOperationsImpl implements ProjectOperations {
args.createEmptyCommit = projectCreation.createEmptyCommit().orElse(true); args.createEmptyCommit = projectCreation.createEmptyCommit().orElse(true);
projectCreation.parent().ifPresent(p -> args.newParent = p); projectCreation.parent().ifPresent(p -> args.newParent = p);
// ProjectCreator wants non-null owner IDs. // ProjectCreator wants non-null owner IDs.
args.ownerIds = new ArrayList<>(); args.ownerIds = new ArrayList<>(projectCreation.owners());
projectCreation.submitType().ifPresent(st -> args.submitType = st); projectCreation.submitType().ifPresent(st -> args.submitType = st);
projectCreator.createProject(args); projectCreator.createProject(args);
return Project.nameKey(name); return Project.nameKey(name);

View File

@@ -14,8 +14,12 @@
package com.google.gerrit.acceptance.testsuite.project; package com.google.gerrit.acceptance.testsuite.project;
import static java.util.Objects.requireNonNull;
import com.google.auto.value.AutoValue; import com.google.auto.value.AutoValue;
import com.google.common.collect.ImmutableSet;
import com.google.gerrit.acceptance.testsuite.ThrowingFunction; import com.google.gerrit.acceptance.testsuite.ThrowingFunction;
import com.google.gerrit.entities.AccountGroup;
import com.google.gerrit.entities.Project; import com.google.gerrit.entities.Project;
import com.google.gerrit.extensions.client.SubmitType; import com.google.gerrit.extensions.client.SubmitType;
import java.util.Optional; import java.util.Optional;
@@ -33,6 +37,8 @@ public abstract class TestProjectCreation {
public abstract Optional<SubmitType> submitType(); public abstract Optional<SubmitType> submitType();
public abstract ImmutableSet<AccountGroup.UUID> owners();
abstract ThrowingFunction<TestProjectCreation, Project.NameKey> projectCreator(); abstract ThrowingFunction<TestProjectCreation, Project.NameKey> projectCreator();
public static Builder builder( public static Builder builder(
@@ -57,6 +63,13 @@ public abstract class TestProjectCreation {
return createEmptyCommit(false); return createEmptyCommit(false);
} }
public TestProjectCreation.Builder addOwner(AccountGroup.UUID owner) {
ownersBuilder().add(requireNonNull(owner, "owner"));
return this;
}
abstract ImmutableSet.Builder<AccountGroup.UUID> ownersBuilder();
abstract TestProjectCreation.Builder projectCreator( abstract TestProjectCreation.Builder projectCreator(
ThrowingFunction<TestProjectCreation, Project.NameKey> projectCreator); ThrowingFunction<TestProjectCreation, Project.NameKey> projectCreator);

View File

@@ -38,8 +38,10 @@ import static java.util.stream.Collectors.toList;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableListMultimap; import com.google.common.collect.ImmutableListMultimap;
import com.google.gerrit.acceptance.AbstractDaemonTest; 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.acceptance.testsuite.project.TestProjectUpdate.TestPermission;
import com.google.gerrit.common.data.Permission; import com.google.gerrit.common.data.Permission;
import com.google.gerrit.entities.AccountGroup;
import com.google.gerrit.entities.Project; import com.google.gerrit.entities.Project;
import com.google.gerrit.entities.RefNames; import com.google.gerrit.entities.RefNames;
import com.google.gerrit.extensions.api.projects.BranchInfo; import com.google.gerrit.extensions.api.projects.BranchInfo;
@@ -57,6 +59,7 @@ import org.junit.Test;
public class ProjectOperationsImplTest extends AbstractDaemonTest { public class ProjectOperationsImplTest extends AbstractDaemonTest {
@Inject private ProjectOperations projectOperations; @Inject private ProjectOperations projectOperations;
@Inject private GroupOperations groupsOperations;
@Test @Test
public void defaultName() throws Exception { public void defaultName() throws Exception {
@@ -91,6 +94,13 @@ public class ProjectOperationsImplTest extends AbstractDaemonTest {
assertThat(head).isEqualTo(RefNames.REFS_CONFIG); assertThat(head).isEqualTo(RefNames.REFS_CONFIG);
} }
@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 @Test
public void getProjectConfig() throws Exception { public void getProjectConfig() throws Exception {
Project.NameKey key = projectOperations.newProject().create(); Project.NameKey key = projectOperations.newProject().create();