Push down remaining AbstractDaemonTest#createProject() calls

Change-Id: I4dc5f41b27bb39a7354139bf5c373686fa993d17
This commit is contained in:
Han-Wen Nienhuys
2018-11-21 19:43:58 +01:00
committed by David Pursehouse
parent f6b69bc2dd
commit 63f120d942
15 changed files with 126 additions and 137 deletions

View File

@@ -38,7 +38,6 @@ import com.google.common.jimfs.Jimfs;
import com.google.common.primitives.Chars; import com.google.common.primitives.Chars;
import com.google.gerrit.acceptance.AcceptanceTestRequestScope.Context; import com.google.gerrit.acceptance.AcceptanceTestRequestScope.Context;
import com.google.gerrit.acceptance.testsuite.account.TestSshKeys; import com.google.gerrit.acceptance.testsuite.account.TestSshKeys;
import com.google.gerrit.acceptance.testsuite.project.ProjectOperations;
import com.google.gerrit.common.Nullable; import com.google.gerrit.common.Nullable;
import com.google.gerrit.common.data.AccessSection; import com.google.gerrit.common.data.AccessSection;
import com.google.gerrit.common.data.GroupDescription; import com.google.gerrit.common.data.GroupDescription;
@@ -295,7 +294,6 @@ public abstract class AbstractDaemonTest {
@Inject private AccountIndexer accountIndexer; @Inject private AccountIndexer accountIndexer;
@Inject private Groups groups; @Inject private Groups groups;
@Inject private GroupIndexer groupIndexer; @Inject private GroupIndexer groupIndexer;
@Inject private ProjectOperations projectOperations;
private ProjectResetter resetter; private ProjectResetter resetter;
private List<Repository> toClose; private List<Repository> toClose;
@@ -552,43 +550,6 @@ public abstract class AbstractDaemonTest {
return resourcePrefix + name; return resourcePrefix + name;
} }
protected Project.NameKey createProject(String nameSuffix, Project.NameKey parent)
throws Exception {
// Default for createEmptyCommit should match TestProjectConfig.
return projectOperations.newProject().parent(parent).create();
}
protected Project.NameKey createProject(
String nameSuffix, Project.NameKey parent, boolean createEmptyCommit) throws Exception {
// Default for createEmptyCommit should match TestProjectConfig.
if (parent == null) {
return projectOperations.newProject().createEmptyCommit(createEmptyCommit).create();
}
return projectOperations
.newProject()
.parent(parent)
.createEmptyCommit(createEmptyCommit)
.create();
}
protected Project.NameKey createProject(
String nameSuffix, Project.NameKey parent, boolean createEmptyCommit, SubmitType submitType)
throws Exception {
if (parent == null) {
return projectOperations
.newProject()
.createEmptyCommit(createEmptyCommit)
.submitType(submitType)
.create();
}
return projectOperations
.newProject()
.submitType(submitType)
.parent(parent)
.createEmptyCommit(createEmptyCommit)
.create();
}
protected Project.NameKey createProjectOverAPI( protected Project.NameKey createProjectOverAPI(
String nameSuffix, Project.NameKey parent, boolean createEmptyCommit, SubmitType submitType) String nameSuffix, Project.NameKey parent, boolean createEmptyCommit, SubmitType submitType)
throws RestApiException { throws RestApiException {

View File

@@ -31,6 +31,7 @@ import com.google.gerrit.acceptance.GerritConfig;
import com.google.gerrit.acceptance.GitUtil; import com.google.gerrit.acceptance.GitUtil;
import com.google.gerrit.acceptance.NoHttpd; import com.google.gerrit.acceptance.NoHttpd;
import com.google.gerrit.acceptance.PushOneCommit; import com.google.gerrit.acceptance.PushOneCommit;
import com.google.gerrit.acceptance.testsuite.project.ProjectOperations;
import com.google.gerrit.common.data.Permission; import com.google.gerrit.common.data.Permission;
import com.google.gerrit.extensions.api.projects.BranchInput; import com.google.gerrit.extensions.api.projects.BranchInput;
import com.google.gerrit.extensions.api.projects.CommentLinkInfo; import com.google.gerrit.extensions.api.projects.CommentLinkInfo;
@@ -73,6 +74,7 @@ public class ProjectIT extends AbstractDaemonTest {
private static final String JIRA_MATCH = "(jira\\\\s+#?)(\\\\d+)"; private static final String JIRA_MATCH = "(jira\\\\s+#?)(\\\\d+)";
@Inject private DynamicSet<ProjectIndexedListener> projectIndexedListeners; @Inject private DynamicSet<ProjectIndexedListener> projectIndexedListeners;
@Inject private ProjectOperations projectOperations;
@Inject @Inject
@IndexExecutor(BATCH) @IndexExecutor(BATCH)
@@ -429,7 +431,7 @@ public class ProjectIT extends AbstractDaemonTest {
@Test @Test
public void reindexProject() throws Exception { public void reindexProject() throws Exception {
createProject("child", project); projectOperations.newProject().parent(project).create();
projectIndexedCounter.clear(); projectIndexedCounter.clear();
gApi.projects().name(allProjects.get()).index(false); gApi.projects().name(allProjects.get()).index(false);
@@ -438,8 +440,8 @@ public class ProjectIT extends AbstractDaemonTest {
@Test @Test
public void reindexProjectWithChildren() throws Exception { public void reindexProjectWithChildren() throws Exception {
Project.NameKey middle = createProject("middle", project); Project.NameKey middle = projectOperations.newProject().parent(project).create();
Project.NameKey leave = createProject("leave", middle); Project.NameKey leave = projectOperations.newProject().parent(middle).create();
projectIndexedCounter.clear(); projectIndexedCounter.clear();
gApi.projects().name(project.get()).index(true); gApi.projects().name(project.get()).index(true);
@@ -473,7 +475,7 @@ public class ProjectIT extends AbstractDaemonTest {
@Test @Test
@GerritConfig(name = "receive.inheritProjectMaxObjectSizeLimit", value = "true") @GerritConfig(name = "receive.inheritProjectMaxObjectSizeLimit", value = "true")
public void maxObjectSizeIsInheritedFromParentProject() throws Exception { public void maxObjectSizeIsInheritedFromParentProject() throws Exception {
Project.NameKey child = createProject(name("child"), project); Project.NameKey child = projectOperations.newProject().parent(project).create();
ConfigInfo info = setMaxObjectSize("100k"); ConfigInfo info = setMaxObjectSize("100k");
assertThat(info.maxObjectSizeLimit.value).isEqualTo("102400"); assertThat(info.maxObjectSizeLimit.value).isEqualTo("102400");
@@ -489,7 +491,7 @@ public class ProjectIT extends AbstractDaemonTest {
@Test @Test
public void maxObjectSizeIsNotInheritedFromParentProject() throws Exception { public void maxObjectSizeIsNotInheritedFromParentProject() throws Exception {
Project.NameKey child = createProject(name("child"), project); Project.NameKey child = projectOperations.newProject().parent(project).create();
ConfigInfo info = setMaxObjectSize("100k"); ConfigInfo info = setMaxObjectSize("100k");
assertThat(info.maxObjectSizeLimit.value).isEqualTo("102400"); assertThat(info.maxObjectSizeLimit.value).isEqualTo("102400");
@@ -504,7 +506,7 @@ public class ProjectIT extends AbstractDaemonTest {
@Test @Test
public void maxObjectSizeOverridesParentProjectWhenNotSetOnParent() throws Exception { public void maxObjectSizeOverridesParentProjectWhenNotSetOnParent() throws Exception {
Project.NameKey child = createProject(name("child"), project); Project.NameKey child = projectOperations.newProject().parent(project).create();
ConfigInfo info = setMaxObjectSize("0"); ConfigInfo info = setMaxObjectSize("0");
assertThat(info.maxObjectSizeLimit.value).isNull(); assertThat(info.maxObjectSizeLimit.value).isNull();
@@ -519,7 +521,7 @@ public class ProjectIT extends AbstractDaemonTest {
@Test @Test
public void maxObjectSizeOverridesParentProjectWhenLower() throws Exception { public void maxObjectSizeOverridesParentProjectWhenLower() throws Exception {
Project.NameKey child = createProject(name("child"), project); Project.NameKey child = projectOperations.newProject().parent(project).create();
ConfigInfo info = setMaxObjectSize("200k"); ConfigInfo info = setMaxObjectSize("200k");
assertThat(info.maxObjectSizeLimit.value).isEqualTo("204800"); assertThat(info.maxObjectSizeLimit.value).isEqualTo("204800");
@@ -535,7 +537,7 @@ public class ProjectIT extends AbstractDaemonTest {
@Test @Test
@GerritConfig(name = "receive.inheritProjectMaxObjectSizeLimit", value = "true") @GerritConfig(name = "receive.inheritProjectMaxObjectSizeLimit", value = "true")
public void maxObjectSizeDoesNotOverrideParentProjectWhenHigher() throws Exception { public void maxObjectSizeDoesNotOverrideParentProjectWhenHigher() throws Exception {
Project.NameKey child = createProject(name("child"), project); Project.NameKey child = projectOperations.newProject().parent(project).create();
ConfigInfo info = setMaxObjectSize("100k"); ConfigInfo info = setMaxObjectSize("100k");
assertThat(info.maxObjectSizeLimit.value).isEqualTo("102400"); assertThat(info.maxObjectSizeLimit.value).isEqualTo("102400");
@@ -552,7 +554,7 @@ public class ProjectIT extends AbstractDaemonTest {
@Test @Test
@GerritConfig(name = "receive.maxObjectSizeLimit", value = "200k") @GerritConfig(name = "receive.maxObjectSizeLimit", value = "200k")
public void maxObjectSizeIsInheritedFromGlobalConfig() throws Exception { public void maxObjectSizeIsInheritedFromGlobalConfig() throws Exception {
Project.NameKey child = createProject(name("child"), project); Project.NameKey child = projectOperations.newProject().parent(project).create();
ConfigInfo info = getConfig(); ConfigInfo info = getConfig();
assertThat(info.maxObjectSizeLimit.value).isEqualTo("204800"); assertThat(info.maxObjectSizeLimit.value).isEqualTo("204800");
@@ -577,7 +579,7 @@ public class ProjectIT extends AbstractDaemonTest {
@Test @Test
@GerritConfig(name = "receive.maxObjectSizeLimit", value = "300k") @GerritConfig(name = "receive.maxObjectSizeLimit", value = "300k")
public void inheritedMaxObjectSizeOverridesGlobalConfigWhenLower() throws Exception { public void inheritedMaxObjectSizeOverridesGlobalConfigWhenLower() throws Exception {
Project.NameKey child = createProject(name("child"), project); Project.NameKey child = projectOperations.newProject().parent(project).create();
ConfigInfo info = setMaxObjectSize("200k"); ConfigInfo info = setMaxObjectSize("200k");
assertThat(info.maxObjectSizeLimit.value).isEqualTo("204800"); assertThat(info.maxObjectSizeLimit.value).isEqualTo("204800");
@@ -594,7 +596,7 @@ public class ProjectIT extends AbstractDaemonTest {
@GerritConfig(name = "receive.maxObjectSizeLimit", value = "200k") @GerritConfig(name = "receive.maxObjectSizeLimit", value = "200k")
@GerritConfig(name = "receive.inheritProjectMaxObjectSizeLimit", value = "true") @GerritConfig(name = "receive.inheritProjectMaxObjectSizeLimit", value = "true")
public void maxObjectSizeDoesNotOverrideGlobalConfigWhenHigher() throws Exception { public void maxObjectSizeDoesNotOverrideGlobalConfigWhenHigher() throws Exception {
Project.NameKey child = createProject(name("child"), project); Project.NameKey child = projectOperations.newProject().parent(project).create();
ConfigInfo info = setMaxObjectSize("300k"); ConfigInfo info = setMaxObjectSize("300k");
assertThat(info.maxObjectSizeLimit.value).isEqualTo("204800"); assertThat(info.maxObjectSizeLimit.value).isEqualTo("204800");

View File

@@ -19,6 +19,7 @@ import static com.google.gerrit.acceptance.GitUtil.fetch;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
import com.google.gerrit.acceptance.AbstractDaemonTest; import com.google.gerrit.acceptance.AbstractDaemonTest;
import com.google.gerrit.acceptance.testsuite.project.ProjectOperations;
import com.google.gerrit.index.IndexConfig; import com.google.gerrit.index.IndexConfig;
import com.google.gerrit.index.QueryOptions; import com.google.gerrit.index.QueryOptions;
import com.google.gerrit.index.RefState; import com.google.gerrit.index.RefState;
@@ -45,6 +46,7 @@ public class ProjectIndexerIT extends AbstractDaemonTest {
@Inject private ProjectIndexCollection indexes; @Inject private ProjectIndexCollection indexes;
@Inject private IndexConfig indexConfig; @Inject private IndexConfig indexConfig;
@Inject private StalenessChecker stalenessChecker; @Inject private StalenessChecker stalenessChecker;
@Inject private ProjectOperations projectOperations;
private static final ImmutableSet<String> FIELDS = private static final ImmutableSet<String> FIELDS =
ImmutableSet.of(ProjectField.NAME.getName(), ProjectField.REF_STATE.getName()); ImmutableSet.of(ProjectField.NAME.getName(), ProjectField.REF_STATE.getName());
@@ -96,8 +98,8 @@ public class ProjectIndexerIT extends AbstractDaemonTest {
@Test @Test
public void stalenessChecker_hierarchyChange_isStale() throws Exception { public void stalenessChecker_hierarchyChange_isStale() throws Exception {
Project.NameKey p1 = createProject("p1", allProjects); Project.NameKey p1 = projectOperations.newProject().create();
Project.NameKey p2 = createProject("p2", allProjects); Project.NameKey p2 = projectOperations.newProject().create();
try (ProjectConfigUpdate u = updateProject(project)) { try (ProjectConfigUpdate u = updateProject(project)) {
u.getConfig().getProject().setParentName(p1); u.getConfig().getProject().setParentName(p1);
u.save(); u.save();

View File

@@ -19,6 +19,7 @@ import static com.google.common.truth.Truth.assertThat;
import com.google.gerrit.acceptance.AbstractDaemonTest; import com.google.gerrit.acceptance.AbstractDaemonTest;
import com.google.gerrit.acceptance.GerritConfig; import com.google.gerrit.acceptance.GerritConfig;
import com.google.gerrit.acceptance.NoHttpd; import com.google.gerrit.acceptance.NoHttpd;
import com.google.gerrit.acceptance.testsuite.project.ProjectOperations;
import com.google.gerrit.common.data.Permission; import com.google.gerrit.common.data.Permission;
import com.google.gerrit.extensions.restapi.AuthException; import com.google.gerrit.extensions.restapi.AuthException;
import com.google.gerrit.extensions.restapi.BadRequestException; import com.google.gerrit.extensions.restapi.BadRequestException;
@@ -27,14 +28,17 @@ import com.google.gerrit.extensions.restapi.UnprocessableEntityException;
import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.reviewdb.client.Project;
import com.google.gerrit.server.config.AllProjectsNameProvider; import com.google.gerrit.server.config.AllProjectsNameProvider;
import com.google.gerrit.server.group.SystemGroupBackend; import com.google.gerrit.server.group.SystemGroupBackend;
import com.google.inject.Inject;
import org.junit.Test; import org.junit.Test;
@NoHttpd @NoHttpd
public class SetParentIT extends AbstractDaemonTest { public class SetParentIT extends AbstractDaemonTest {
@Inject private ProjectOperations projectOperations;
@Test @Test
public void setParentNotAllowed() throws Exception { public void setParentNotAllowed() throws Exception {
String parent = createProject("parent", null, true).get(); String parent = this.projectOperations.newProject().create().get();
setApiUser(user); setApiUser(user);
exception.expect(AuthException.class); exception.expect(AuthException.class);
gApi.projects().name(project.get()).parent(parent); gApi.projects().name(project.get()).parent(parent);
@@ -43,7 +47,7 @@ public class SetParentIT extends AbstractDaemonTest {
@Test @Test
@GerritConfig(name = "receive.allowProjectOwnersToChangeParent", value = "true") @GerritConfig(name = "receive.allowProjectOwnersToChangeParent", value = "true")
public void setParentNotAllowedForNonOwners() throws Exception { public void setParentNotAllowedForNonOwners() throws Exception {
String parent = createProject("parent", null, true).get(); String parent = this.projectOperations.newProject().create().get();
setApiUser(user); setApiUser(user);
exception.expect(AuthException.class); exception.expect(AuthException.class);
gApi.projects().name(project.get()).parent(parent); gApi.projects().name(project.get()).parent(parent);
@@ -52,7 +56,7 @@ public class SetParentIT extends AbstractDaemonTest {
@Test @Test
@GerritConfig(name = "receive.allowProjectOwnersToChangeParent", value = "true") @GerritConfig(name = "receive.allowProjectOwnersToChangeParent", value = "true")
public void setParentAllowedByAdminWhenAllowProjectOwnersEnabled() throws Exception { public void setParentAllowedByAdminWhenAllowProjectOwnersEnabled() throws Exception {
String parent = createProject("parent", null, true).get(); String parent = this.projectOperations.newProject().create().get();
gApi.projects().name(project.get()).parent(parent); gApi.projects().name(project.get()).parent(parent);
assertThat(gApi.projects().name(project.get()).parent()).isEqualTo(parent); assertThat(gApi.projects().name(project.get()).parent()).isEqualTo(parent);
@@ -67,7 +71,7 @@ public class SetParentIT extends AbstractDaemonTest {
@Test @Test
@GerritConfig(name = "receive.allowProjectOwnersToChangeParent", value = "true") @GerritConfig(name = "receive.allowProjectOwnersToChangeParent", value = "true")
public void setParentAllowedForOwners() throws Exception { public void setParentAllowedForOwners() throws Exception {
String parent = createProject("parent", null, true).get(); String parent = this.projectOperations.newProject().create().get();
setApiUser(user); setApiUser(user);
grant(project, "refs/*", Permission.OWNER, false, SystemGroupBackend.REGISTERED_USERS); grant(project, "refs/*", Permission.OWNER, false, SystemGroupBackend.REGISTERED_USERS);
gApi.projects().name(project.get()).parent(parent); gApi.projects().name(project.get()).parent(parent);
@@ -76,7 +80,7 @@ public class SetParentIT extends AbstractDaemonTest {
@Test @Test
public void setParent() throws Exception { public void setParent() throws Exception {
String parent = createProject("parent", null, true).get(); String parent = this.projectOperations.newProject().create().get();
gApi.projects().name(project.get()).parent(parent); gApi.projects().name(project.get()).parent(parent);
assertThat(gApi.projects().name(project.get()).parent()).isEqualTo(parent); assertThat(gApi.projects().name(project.get()).parent()).isEqualTo(parent);
@@ -104,7 +108,7 @@ public class SetParentIT extends AbstractDaemonTest {
@Test @Test
public void setParentToOwnChildNotAllowed() throws Exception { public void setParentToOwnChildNotAllowed() throws Exception {
String child = createProject("child", project, true).get(); String child = projectOperations.newProject().parent(project).create().get();
exception.expect(ResourceConflictException.class); exception.expect(ResourceConflictException.class);
exception.expectMessage("cycle exists between"); exception.expectMessage("cycle exists between");
gApi.projects().name(project.get()).parent(child); gApi.projects().name(project.get()).parent(child);
@@ -112,8 +116,8 @@ public class SetParentIT extends AbstractDaemonTest {
@Test @Test
public void setParentToGrandchildNotAllowed() throws Exception { public void setParentToGrandchildNotAllowed() throws Exception {
Project.NameKey child = createProject("child", project, true); Project.NameKey child = this.projectOperations.newProject().parent(project).create();
String grandchild = createProject("grandchild", child, true).get(); String grandchild = this.projectOperations.newProject().parent(child).create().get();
exception.expect(ResourceConflictException.class); exception.expect(ResourceConflictException.class);
exception.expectMessage("cycle exists between"); exception.expectMessage("cycle exists between");
gApi.projects().name(project.get()).parent(grandchild); gApi.projects().name(project.get()).parent(grandchild);
@@ -137,7 +141,7 @@ public class SetParentIT extends AbstractDaemonTest {
public void setParentForAllUsersMustBeAllProjects() throws Exception { public void setParentForAllUsersMustBeAllProjects() throws Exception {
gApi.projects().name(allUsers.get()).parent(allProjects.get()); gApi.projects().name(allUsers.get()).parent(allProjects.get());
String parent = createProject("parent", null, true).get(); String parent = this.projectOperations.newProject().create().get();
exception.expect(BadRequestException.class); exception.expect(BadRequestException.class);
exception.expectMessage("All-Users must inherit from All-Projects"); exception.expectMessage("All-Users must inherit from All-Projects");

View File

@@ -20,7 +20,6 @@ import static java.util.stream.Collectors.toList;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import com.google.gerrit.acceptance.AbstractDaemonTest; import com.google.gerrit.acceptance.AbstractDaemonTest;
import com.google.gerrit.acceptance.testsuite.project.ProjectOperations; import com.google.gerrit.acceptance.testsuite.project.ProjectOperations;
import com.google.gerrit.common.Nullable;
import com.google.gerrit.common.data.Permission; import com.google.gerrit.common.data.Permission;
import com.google.gerrit.common.data.SubscribeSection; import com.google.gerrit.common.data.SubscribeSection;
import com.google.gerrit.extensions.client.SubmitType; import com.google.gerrit.extensions.client.SubmitType;
@@ -104,15 +103,14 @@ public abstract class AbstractSubmoduleSubscription extends AbstractDaemonTest {
return cfg; return cfg;
} }
protected Project.NameKey createProjectForPush( protected void grantPush(Project.NameKey project) throws Exception {
String name,
@Nullable Project.NameKey parent,
boolean createEmptyCommit,
SubmitType submitType)
throws Exception {
Project.NameKey project = createProject(name, parent, createEmptyCommit, submitType);
grant(project, "refs/heads/*", Permission.PUSH); grant(project, "refs/heads/*", Permission.PUSH);
grant(project, "refs/for/refs/heads/*", Permission.SUBMIT); grant(project, "refs/for/refs/heads/*", Permission.SUBMIT);
}
protected Project.NameKey createProjectForPush(SubmitType submitType) throws Exception {
Project.NameKey project = this.projectOperations.newProject().submitType(submitType).create();
grantPush(project);
return project; return project;
} }
@@ -120,8 +118,8 @@ public abstract class AbstractSubmoduleSubscription extends AbstractDaemonTest {
@Before @Before
public void setUp() throws Exception { public void setUp() throws Exception {
superKey = createProjectForPush("super", null, true, getSubmitType()); superKey = createProjectForPush(getSubmitType());
subKey = createProjectForPush("sub", null, true, getSubmitType()); subKey = createProjectForPush(getSubmitType());
superRepo = cloneProject(superKey); superRepo = cloneProject(superKey);
subRepo = cloneProject(subKey); subRepo = cloneProject(subKey);
} }

View File

@@ -403,12 +403,16 @@ public class SubmoduleSubscriptionsIT extends AbstractSubmoduleSubscription {
@Test @Test
public void subscriptionInheritACL() throws Exception { public void subscriptionInheritACL() throws Exception {
Project.NameKey configKey = createProjectForPush("config-repo", null, true, getSubmitType()); Project.NameKey configKey =
this.projectOperations.newProject().submitType(getSubmitType()).create();
grantPush(configKey);
Project.NameKey config2Key = Project.NameKey config2Key =
createProjectForPush("config-repo2", configKey, true, getSubmitType()); projectOperations.newProject().parent(configKey).submitType(getSubmitType()).create();
grantPush(config2Key);
cloneProject(config2Key); cloneProject(config2Key);
subKey = createProjectForPush("subrepo", config2Key, true, getSubmitType()); subKey = projectOperations.newProject().parent(config2Key).submitType(getSubmitType()).create();
grantPush(subKey);
subRepo = cloneProject(subKey); subRepo = cloneProject(subKey);
allowMatchingSubmoduleSubscription(configKey, "refs/heads/*", superKey, "refs/heads/*"); allowMatchingSubmoduleSubscription(configKey, "refs/heads/*", superKey, "refs/heads/*");
@@ -445,8 +449,7 @@ public class SubmoduleSubscriptionsIT extends AbstractSubmoduleSubscription {
@Test @Test
public void subscriptionDeepRelative() throws Exception { public void subscriptionDeepRelative() throws Exception {
Project.NameKey nest = Project.NameKey nest = createProjectForPush(getSubmitType());
createProjectForPush("nested/subscribed-to-project", null, true, getSubmitType());
TestRepository<?> subRepo = cloneProject(nest); TestRepository<?> subRepo = cloneProject(nest);
// master is allowed to be subscribed to any superprojects branch: // master is allowed to be subscribed to any superprojects branch:
allowMatchingSubmoduleSubscription(nest, "refs/heads/master", superKey, null); allowMatchingSubmoduleSubscription(nest, "refs/heads/master", superKey, null);
@@ -511,8 +514,7 @@ public class SubmoduleSubscriptionsIT extends AbstractSubmoduleSubscription {
TestTimeUtil.resetWithClockStep(1, SECONDS); TestTimeUtil.resetWithClockStep(1, SECONDS);
try { try {
Project.NameKey proj2 = Project.NameKey proj2 = createProjectForPush(getSubmitType());
createProjectForPush("subscribed-to-project-2", null, true, getSubmitType());
TestRepository<?> subRepo2 = cloneProject(proj2); TestRepository<?> subRepo2 = cloneProject(proj2);
allowMatchingSubmoduleSubscription( allowMatchingSubmoduleSubscription(
@@ -559,8 +561,7 @@ public class SubmoduleSubscriptionsIT extends AbstractSubmoduleSubscription {
// is afterwards. // is afterwards.
TestTimeUtil.resetWithClockStep(1, SECONDS); TestTimeUtil.resetWithClockStep(1, SECONDS);
try { try {
Project.NameKey proj2 = Project.NameKey proj2 = createProjectForPush(getSubmitType());
createProjectForPush("subscribed-to-project-2", null, true, getSubmitType());
TestRepository<InMemoryRepository> repo2 = cloneProject(proj2, user); TestRepository<InMemoryRepository> repo2 = cloneProject(proj2, user);
allowMatchingSubmoduleSubscription( allowMatchingSubmoduleSubscription(
@@ -604,10 +605,8 @@ public class SubmoduleSubscriptionsIT extends AbstractSubmoduleSubscription {
@Test @Test
public void updateOnlyRelevantSubmodules() throws Exception { public void updateOnlyRelevantSubmodules() throws Exception {
Project.NameKey subkey1 = Project.NameKey subkey1 = createProjectForPush(getSubmitType());
createProjectForPush("subscribed-to-project-1", null, true, getSubmitType()); Project.NameKey subkey2 = createProjectForPush(getSubmitType());
Project.NameKey subkey2 =
createProjectForPush("subscribed-to-project-2", null, true, getSubmitType());
TestRepository<?> subRepo1 = cloneProject(subkey1); TestRepository<?> subRepo1 = cloneProject(subkey1);
TestRepository<?> subRepo2 = cloneProject(subkey2); TestRepository<?> subRepo2 = cloneProject(subkey2);

View File

@@ -367,8 +367,20 @@ public class SubmoduleSubscriptionsWholeTopicMergeIT extends AbstractSubmoduleSu
@Test @Test
public void doNotUseFastForward() throws Exception { public void doNotUseFastForward() throws Exception {
// like setup, but without empty commit // like setup, but without empty commit
superKey = createProjectForPush("super-nc", null, false, getSubmitType()); superKey =
subKey = createProjectForPush("sub-nc", null, false, getSubmitType()); this.projectOperations
.newProject()
.submitType(getSubmitType())
.createEmptyCommit(false)
.create();
grantPush(superKey);
subKey =
this.projectOperations
.newProject()
.submitType(getSubmitType())
.createEmptyCommit(false)
.create();
grantPush(subKey);
superRepo = cloneProject(superKey); superRepo = cloneProject(superKey);
subRepo = cloneProject(subKey); subRepo = cloneProject(subKey);
@@ -395,8 +407,20 @@ public class SubmoduleSubscriptionsWholeTopicMergeIT extends AbstractSubmoduleSu
@Test @Test
public void useFastForwardWhenNoSubmodule() throws Exception { public void useFastForwardWhenNoSubmodule() throws Exception {
// like setup, but without empty commit // like setup, but without empty commit
superKey = createProjectForPush("super-nc", null, false, getSubmitType()); superKey =
subKey = createProjectForPush("sub-nc", null, false, getSubmitType()); this.projectOperations
.newProject()
.submitType(getSubmitType())
.createEmptyCommit(false)
.create();
grantPush(superKey);
subKey =
this.projectOperations
.newProject()
.submitType(getSubmitType())
.createEmptyCommit(false)
.create();
grantPush(subKey);
superRepo = cloneProject(superKey); superRepo = cloneProject(superKey);
subRepo = cloneProject(subKey); subRepo = cloneProject(subKey);
@@ -493,7 +517,7 @@ public class SubmoduleSubscriptionsWholeTopicMergeIT extends AbstractSubmoduleSu
@Test @Test
public void nonSubmoduleInSameTopic() throws Exception { public void nonSubmoduleInSameTopic() throws Exception {
Project.NameKey standaloneKey = createProjectForPush("standalone", null, true, getSubmitType()); Project.NameKey standaloneKey = createProjectForPush(getSubmitType());
TestRepository<?> standAlone = cloneProject(standaloneKey); TestRepository<?> standAlone = cloneProject(standaloneKey);
allowMatchingSubmoduleSubscription(subKey, "refs/heads/master", superKey, "refs/heads/master"); allowMatchingSubmoduleSubscription(subKey, "refs/heads/master", superKey, "refs/heads/master");
@@ -533,9 +557,9 @@ public class SubmoduleSubscriptionsWholeTopicMergeIT extends AbstractSubmoduleSu
@Test @Test
public void recursiveSubmodules() throws Exception { public void recursiveSubmodules() throws Exception {
Project.NameKey topKey = createProjectForPush("top-project", null, true, getSubmitType()); Project.NameKey topKey = createProjectForPush(getSubmitType());
Project.NameKey midKey = createProjectForPush("mid-project", null, true, getSubmitType()); Project.NameKey midKey = createProjectForPush(getSubmitType());
Project.NameKey botKey = createProjectForPush("bottom-project", null, true, getSubmitType()); Project.NameKey botKey = createProjectForPush(getSubmitType());
TestRepository<?> topRepo = cloneProject(topKey); TestRepository<?> topRepo = cloneProject(topKey);
TestRepository<?> midRepo = cloneProject(midKey); TestRepository<?> midRepo = cloneProject(midKey);
TestRepository<?> bottomRepo = cloneProject(botKey); TestRepository<?> bottomRepo = cloneProject(botKey);
@@ -563,9 +587,9 @@ public class SubmoduleSubscriptionsWholeTopicMergeIT extends AbstractSubmoduleSu
@Test @Test
public void triangleSubmodules() throws Exception { public void triangleSubmodules() throws Exception {
Project.NameKey topKey = createProjectForPush("top-project", null, true, getSubmitType()); Project.NameKey topKey = createProjectForPush(getSubmitType());
Project.NameKey midKey = createProjectForPush("mid-project", null, true, getSubmitType()); Project.NameKey midKey = createProjectForPush(getSubmitType());
Project.NameKey botKey = createProjectForPush("bottom-project", null, true, getSubmitType()); Project.NameKey botKey = createProjectForPush(getSubmitType());
TestRepository<?> topRepo = cloneProject(topKey); TestRepository<?> topRepo = cloneProject(topKey);
TestRepository<?> midRepo = cloneProject(midKey); TestRepository<?> midRepo = cloneProject(midKey);
TestRepository<?> bottomRepo = cloneProject(botKey); TestRepository<?> bottomRepo = cloneProject(botKey);
@@ -597,9 +621,9 @@ public class SubmoduleSubscriptionsWholeTopicMergeIT extends AbstractSubmoduleSu
} }
private String prepareBranchCircularSubscription() throws Exception { private String prepareBranchCircularSubscription() throws Exception {
Project.NameKey topKey = createProjectForPush("top-project", null, true, getSubmitType()); Project.NameKey topKey = createProjectForPush(getSubmitType());
Project.NameKey midKey = createProjectForPush("mid-project", null, true, getSubmitType()); Project.NameKey midKey = createProjectForPush(getSubmitType());
Project.NameKey botKey = createProjectForPush("bottom-project", null, true, getSubmitType()); Project.NameKey botKey = createProjectForPush(getSubmitType());
TestRepository<?> topRepo = cloneProject(topKey); TestRepository<?> topRepo = cloneProject(topKey);
TestRepository<?> midRepo = cloneProject(midKey); TestRepository<?> midRepo = cloneProject(midKey);
TestRepository<?> bottomRepo = cloneProject(botKey); TestRepository<?> bottomRepo = cloneProject(botKey);
@@ -662,8 +686,8 @@ public class SubmoduleSubscriptionsWholeTopicMergeIT extends AbstractSubmoduleSu
@Test @Test
public void projectNoSubscriptionWholeTopic() throws Exception { public void projectNoSubscriptionWholeTopic() throws Exception {
Project.NameKey keyA = createProjectForPush("project-a", null, true, getSubmitType()); Project.NameKey keyA = createProjectForPush(getSubmitType());
Project.NameKey keyB = createProjectForPush("project-b", null, true, getSubmitType()); Project.NameKey keyB = createProjectForPush(getSubmitType());
TestRepository<?> repoA = cloneProject(keyA); TestRepository<?> repoA = cloneProject(keyA);
TestRepository<?> repoB = cloneProject(keyB); TestRepository<?> repoB = cloneProject(keyB);
@@ -733,8 +757,8 @@ public class SubmoduleSubscriptionsWholeTopicMergeIT extends AbstractSubmoduleSu
@Test @Test
public void twoProjectsMultipleBranchesWholeTopic() throws Exception { public void twoProjectsMultipleBranchesWholeTopic() throws Exception {
Project.NameKey keyA = createProjectForPush("project-a", null, true, getSubmitType()); Project.NameKey keyA = createProjectForPush(getSubmitType());
Project.NameKey keyB = createProjectForPush("project-b", null, true, getSubmitType()); Project.NameKey keyB = createProjectForPush(getSubmitType());
TestRepository<?> repoA = cloneProject(keyA); TestRepository<?> repoA = cloneProject(keyA);
TestRepository<?> repoB = cloneProject(keyB); TestRepository<?> repoB = cloneProject(keyB);
// bootstrap the dev branch // bootstrap the dev branch
@@ -782,9 +806,9 @@ public class SubmoduleSubscriptionsWholeTopicMergeIT extends AbstractSubmoduleSu
public void retrySubmitAfterTornTopicOnLockFailure() throws Exception { public void retrySubmitAfterTornTopicOnLockFailure() throws Exception {
assume().that(notesMigration.disableChangeReviewDb()).isTrue(); assume().that(notesMigration.disableChangeReviewDb()).isTrue();
Project.NameKey subKey1 = createProjectForPush("sub1", null, true, getSubmitType()); Project.NameKey subKey1 = createProjectForPush(getSubmitType());
TestRepository<?> sub1 = cloneProject(subKey1); TestRepository<?> sub1 = cloneProject(subKey1);
Project.NameKey subKey2 = createProjectForPush("sub2", null, true, getSubmitType()); Project.NameKey subKey2 = createProjectForPush(getSubmitType());
TestRepository<?> sub2 = cloneProject(subKey2); TestRepository<?> sub2 = cloneProject(subKey2);
allowMatchingSubmoduleSubscription(subKey1, "refs/heads/master", superKey, "refs/heads/master"); allowMatchingSubmoduleSubscription(subKey1, "refs/heads/master", superKey, "refs/heads/master");
@@ -844,9 +868,9 @@ public class SubmoduleSubscriptionsWholeTopicMergeIT extends AbstractSubmoduleSu
@Test @Test
public void skipUpdatingBrokenGitlinkPointer() throws Exception { public void skipUpdatingBrokenGitlinkPointer() throws Exception {
Project.NameKey subKey1 = createProjectForPush("sub1", null, true, getSubmitType()); Project.NameKey subKey1 = createProjectForPush(getSubmitType());
TestRepository<?> sub1 = cloneProject(subKey1); TestRepository<?> sub1 = cloneProject(subKey1);
Project.NameKey subKey2 = createProjectForPush("sub2", null, true, getSubmitType()); Project.NameKey subKey2 = createProjectForPush(getSubmitType());
TestRepository<?> sub2 = cloneProject(subKey2); TestRepository<?> sub2 = cloneProject(subKey2);
allowMatchingSubmoduleSubscription(subKey1, "refs/heads/master", superKey, "refs/heads/master"); allowMatchingSubmoduleSubscription(subKey1, "refs/heads/master", superKey, "refs/heads/master");

View File

@@ -27,11 +27,13 @@ import com.google.gerrit.acceptance.AbstractDaemonTest;
import com.google.gerrit.acceptance.GitUtil; import com.google.gerrit.acceptance.GitUtil;
import com.google.gerrit.acceptance.rest.util.RestApiCallHelper; import com.google.gerrit.acceptance.rest.util.RestApiCallHelper;
import com.google.gerrit.acceptance.rest.util.RestCall; import com.google.gerrit.acceptance.rest.util.RestCall;
import com.google.gerrit.acceptance.testsuite.project.ProjectOperations;
import com.google.gerrit.common.data.Permission; import com.google.gerrit.common.data.Permission;
import com.google.gerrit.extensions.api.changes.ReviewInput; import com.google.gerrit.extensions.api.changes.ReviewInput;
import com.google.gerrit.extensions.api.projects.BranchInput; import com.google.gerrit.extensions.api.projects.BranchInput;
import com.google.gerrit.extensions.api.projects.TagInput; import com.google.gerrit.extensions.api.projects.TagInput;
import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.reviewdb.client.Project;
import com.google.inject.Inject;
import org.eclipse.jgit.junit.TestRepository; import org.eclipse.jgit.junit.TestRepository;
import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.revwalk.RevCommit; import org.eclipse.jgit.revwalk.RevCommit;
@@ -156,6 +158,7 @@ public class ProjectsRestApiBindingsIT extends AbstractDaemonTest {
ImmutableList.of(RestCall.get("/projects/%s/commits/%s/files/%s/content")); ImmutableList.of(RestCall.get("/projects/%s/commits/%s/files/%s/content"));
private static final String FILENAME = "test.txt"; private static final String FILENAME = "test.txt";
@Inject private ProjectOperations projectOperations;
@Test @Test
public void projectEndpoints() throws Exception { public void projectEndpoints() throws Exception {
@@ -164,7 +167,7 @@ public class ProjectsRestApiBindingsIT extends AbstractDaemonTest {
@Test @Test
public void childProjectEndpoints() throws Exception { public void childProjectEndpoints() throws Exception {
Project.NameKey childProject = createProject("test-child-repo", project); Project.NameKey childProject = projectOperations.newProject().parent(project).create();
RestApiCallHelper.execute( RestApiCallHelper.execute(
adminRestSession, CHILD_PROJECT_ENDPOINTS, project.get(), childProject.get()); adminRestSession, CHILD_PROJECT_ENDPOINTS, project.get(), childProject.get());
} }

View File

@@ -38,8 +38,6 @@ import com.google.gerrit.acceptance.PushOneCommit;
import com.google.gerrit.acceptance.TestAccount; import com.google.gerrit.acceptance.TestAccount;
import com.google.gerrit.acceptance.TestProjectInput; import com.google.gerrit.acceptance.TestProjectInput;
import com.google.gerrit.acceptance.testsuite.project.ProjectOperations; import com.google.gerrit.acceptance.testsuite.project.ProjectOperations;
import com.google.gerrit.acceptance.testsuite.project.TestProjectCreation;
import com.google.gerrit.common.Nullable;
import com.google.gerrit.common.data.Permission; import com.google.gerrit.common.data.Permission;
import com.google.gerrit.extensions.api.changes.ChangeApi; import com.google.gerrit.extensions.api.changes.ChangeApi;
import com.google.gerrit.extensions.api.changes.SubmitInput; import com.google.gerrit.extensions.api.changes.SubmitInput;
@@ -67,7 +65,6 @@ import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.reviewdb.client.PatchSet; import com.google.gerrit.reviewdb.client.PatchSet;
import com.google.gerrit.reviewdb.client.PatchSetApproval; import com.google.gerrit.reviewdb.client.PatchSetApproval;
import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.reviewdb.client.Project;
import com.google.gerrit.reviewdb.client.Project.NameKey;
import com.google.gerrit.reviewdb.client.RefNames; import com.google.gerrit.reviewdb.client.RefNames;
import com.google.gerrit.server.ApprovalsUtil; import com.google.gerrit.server.ApprovalsUtil;
import com.google.gerrit.server.IdentifiedUser; import com.google.gerrit.server.IdentifiedUser;
@@ -389,9 +386,9 @@ public abstract class AbstractSubmit extends AbstractDaemonTest {
String topic = "test-topic"; String topic = "test-topic";
// Create test projects // Create test projects
Project.NameKey keyA = createProjectForPush(null, getSubmitType()); Project.NameKey keyA = createProjectForPush(getSubmitType());
TestRepository<?> repoA = cloneProject(keyA); TestRepository<?> repoA = cloneProject(keyA);
Project.NameKey keyB = createProjectForPush(null, getSubmitType()); Project.NameKey keyB = createProjectForPush(getSubmitType());
TestRepository<?> repoB = cloneProject(keyB); TestRepository<?> repoB = cloneProject(keyB);
// Create changes on project-a // Create changes on project-a
@@ -425,7 +422,7 @@ public abstract class AbstractSubmit extends AbstractDaemonTest {
String topic = "test-topic"; String topic = "test-topic";
// Create test project // Create test project
Project.NameKey keyA = createProjectForPush(null, getSubmitType()); Project.NameKey keyA = createProjectForPush(getSubmitType());
TestRepository<?> repoA = cloneProject(keyA); TestRepository<?> repoA = cloneProject(keyA);
RevCommit initialHead = getRemoteHead(keyA, "master"); RevCommit initialHead = getRemoteHead(keyA, "master");
@@ -775,9 +772,9 @@ public abstract class AbstractSubmit extends AbstractDaemonTest {
String topic = "test-topic"; String topic = "test-topic";
// Create test projects // Create test projects
Project.NameKey keyA = createProjectForPush(null, getSubmitType()); Project.NameKey keyA = createProjectForPush(getSubmitType());
TestRepository<?> repoA = cloneProject(keyA); TestRepository<?> repoA = cloneProject(keyA);
Project.NameKey keyB = createProjectForPush(null, getSubmitType()); Project.NameKey keyB = createProjectForPush(getSubmitType());
TestRepository<?> repoB = cloneProject(keyB); TestRepository<?> repoB = cloneProject(keyB);
// Create changes on project-a // Create changes on project-a
@@ -940,8 +937,8 @@ public abstract class AbstractSubmit extends AbstractDaemonTest {
String topic = "test-topic"; String topic = "test-topic";
Project.NameKey keyA = createProjectForPush(null, getSubmitType()); Project.NameKey keyA = createProjectForPush(getSubmitType());
Project.NameKey keyB = createProjectForPush(null, getSubmitType()); Project.NameKey keyB = createProjectForPush(getSubmitType());
TestRepository<?> repoA = cloneProject(keyA); TestRepository<?> repoA = cloneProject(keyA);
TestRepository<?> repoB = cloneProject(keyB); TestRepository<?> repoB = cloneProject(keyB);
@@ -1362,13 +1359,8 @@ public abstract class AbstractSubmit extends AbstractDaemonTest {
} }
// TODO(hanwen): the submodule tests have a similar method; maybe we could share code? // TODO(hanwen): the submodule tests have a similar method; maybe we could share code?
protected Project.NameKey createProjectForPush(@Nullable NameKey parent, SubmitType submitType) protected Project.NameKey createProjectForPush(SubmitType submitType) throws Exception {
throws Exception { Project.NameKey project = projectOperations.newProject().submitType(submitType).create();
TestProjectCreation.Builder b = projectOperations.newProject().submitType(submitType);
if (parent != null) {
b.parent(parent);
}
Project.NameKey project = b.create();
grant(project, "refs/heads/*", Permission.PUSH); grant(project, "refs/heads/*", Permission.PUSH);
grant(project, "refs/for/refs/heads/*", Permission.SUBMIT); grant(project, "refs/for/refs/heads/*", Permission.SUBMIT);
return project; return project;

View File

@@ -19,11 +19,13 @@ import com.google.gerrit.acceptance.AcceptanceTestRequestScope.Context;
import com.google.gerrit.acceptance.PushOneCommit; import com.google.gerrit.acceptance.PushOneCommit;
import com.google.gerrit.acceptance.TestAccount; import com.google.gerrit.acceptance.TestAccount;
import com.google.gerrit.acceptance.TestProjectInput; import com.google.gerrit.acceptance.TestProjectInput;
import com.google.gerrit.acceptance.testsuite.project.ProjectOperations;
import com.google.gerrit.extensions.api.changes.ReviewInput; import com.google.gerrit.extensions.api.changes.ReviewInput;
import com.google.gerrit.extensions.restapi.AuthException; import com.google.gerrit.extensions.restapi.AuthException;
import com.google.gerrit.reviewdb.client.AccountGroup; import com.google.gerrit.reviewdb.client.AccountGroup;
import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.reviewdb.client.Project;
import com.google.gerrit.server.group.SystemGroupBackend; import com.google.gerrit.server.group.SystemGroupBackend;
import com.google.inject.Inject;
import org.eclipse.jgit.internal.storage.dfs.InMemoryRepository; import org.eclipse.jgit.internal.storage.dfs.InMemoryRepository;
import org.eclipse.jgit.junit.TestRepository; import org.eclipse.jgit.junit.TestRepository;
import org.junit.Before; import org.junit.Before;
@@ -32,6 +34,7 @@ import org.junit.Test;
public class ChangeOwnerIT extends AbstractDaemonTest { public class ChangeOwnerIT extends AbstractDaemonTest {
private TestAccount user2; private TestAccount user2;
@Inject private ProjectOperations projectOperations;
@Before @Before
public void setUp() throws Exception { public void setUp() throws Exception {
@@ -63,7 +66,7 @@ public class ChangeOwnerIT extends AbstractDaemonTest {
public void testChangeOwner_OwnerACLGrantedOnParentProject() throws Exception { public void testChangeOwner_OwnerACLGrantedOnParentProject() throws Exception {
setApiUser(admin); setApiUser(admin);
grantApproveToChangeOwner(project); grantApproveToChangeOwner(project);
Project.NameKey child = createProject("child", project); Project.NameKey child = projectOperations.newProject().parent(project).create();
setApiUser(user); setApiUser(user);
TestRepository<InMemoryRepository> childRepo = cloneProject(child, user); TestRepository<InMemoryRepository> childRepo = cloneProject(child, user);
@@ -74,7 +77,7 @@ public class ChangeOwnerIT extends AbstractDaemonTest {
public void testChangeOwner_BlockedOnParentProject() throws Exception { public void testChangeOwner_BlockedOnParentProject() throws Exception {
setApiUser(admin); setApiUser(admin);
blockApproveForChangeOwner(project); blockApproveForChangeOwner(project);
Project.NameKey child = createProject("child", project); Project.NameKey child = projectOperations.newProject().parent(project).create();
setApiUser(user); setApiUser(user);
grantApproveToAll(child); grantApproveToAll(child);
@@ -92,7 +95,7 @@ public class ChangeOwnerIT extends AbstractDaemonTest {
public void testChangeOwner_BlockedOnParentProjectAndExclusiveAllowOnChild() throws Exception { public void testChangeOwner_BlockedOnParentProjectAndExclusiveAllowOnChild() throws Exception {
setApiUser(admin); setApiUser(admin);
blockApproveForChangeOwner(project); blockApproveForChangeOwner(project);
Project.NameKey child = createProject("child", project); Project.NameKey child = projectOperations.newProject().parent(project).create();
setApiUser(user); setApiUser(user);
grantExclusiveApproveToAll(child); grantExclusiveApproveToAll(child);

View File

@@ -41,7 +41,7 @@ public class PrivateByDefaultIT extends AbstractDaemonTest {
@Before @Before
public void setUp() throws Exception { public void setUp() throws Exception {
project1 = projectOperations.newProject().create(); project1 = projectOperations.newProject().create();
project2 = createProject("project-2", project1); project2 = this.projectOperations.newProject().parent(project1).create();
setPrivateByDefault(project1, InheritableBoolean.FALSE); setPrivateByDefault(project1, InheritableBoolean.FALSE);
} }

View File

@@ -53,7 +53,7 @@ public class GetChildProjectIT extends AbstractDaemonTest {
@Test @Test
public void getGrandChildProject_NotFound() throws Exception { public void getGrandChildProject_NotFound() throws Exception {
Project.NameKey child = projectOperations.newProject().create(); Project.NameKey child = projectOperations.newProject().create();
Project.NameKey grandChild = createProject("p1.1", child); Project.NameKey grandChild = this.projectOperations.newProject().parent(child).create();
assertChildNotFound(allProjects, grandChild.get()); assertChildNotFound(allProjects, grandChild.get());
} }
@@ -61,7 +61,7 @@ public class GetChildProjectIT extends AbstractDaemonTest {
@Test @Test
public void getGrandChildProjectWithRecursiveFlag() throws Exception { public void getGrandChildProjectWithRecursiveFlag() throws Exception {
Project.NameKey child = projectOperations.newProject().create(); Project.NameKey child = projectOperations.newProject().create();
Project.NameKey grandChild = createProject("p1.1", child); Project.NameKey grandChild = this.projectOperations.newProject().parent(child).create();
ProjectInfo grandChildInfo = ProjectInfo grandChildInfo =
gApi.projects().name(allProjects.get()).child(grandChild.get()).get(true); gApi.projects().name(allProjects.get()).child(grandChild.get()).get(true);

View File

@@ -44,8 +44,8 @@ public class ListChildProjectsIT extends AbstractDaemonTest {
@Test @Test
public void listChildren() throws Exception { public void listChildren() throws Exception {
Project.NameKey child1 = projectOperations.newProject().create(); Project.NameKey child1 = projectOperations.newProject().create();
Project.NameKey child1_1 = createProject("p1.1", child1); Project.NameKey child1_1 = this.projectOperations.newProject().parent(child1).create();
Project.NameKey child1_2 = createProject("p1.2", child1); Project.NameKey child1_2 = this.projectOperations.newProject().parent(child1).create();
assertThatNameList(gApi.projects().name(child1.get()).children()).isOrdered(); assertThatNameList(gApi.projects().name(child1.get()).children()).isOrdered();
assertThatNameList(gApi.projects().name(child1.get()).children()) assertThatNameList(gApi.projects().name(child1.get()).children())

View File

@@ -104,7 +104,6 @@ public class ListProjectsIT extends AbstractDaemonTest {
@Test @Test
public void listProjectsWithPrefix() throws Exception { public void listProjectsWithPrefix() throws Exception {
// Default for createEmptyCommit should match TestProjectConfig.
Project.NameKey someProject = projectOperations.newProject().name("listtest-p1").create(); Project.NameKey someProject = projectOperations.newProject().name("listtest-p1").create();
Project.NameKey someOtherProject = projectOperations.newProject().name("listtest-p2").create(); Project.NameKey someOtherProject = projectOperations.newProject().name("listtest-p2").create();
projectOperations.newProject().name("other-prefix-project").create(); projectOperations.newProject().name("other-prefix-project").create();
@@ -171,10 +170,8 @@ public class ListProjectsIT extends AbstractDaemonTest {
@Test @Test
public void listProjectsWithTree() throws Exception { public void listProjectsWithTree() throws Exception {
// Default for createEmptyCommit should match TestProjectConfig.
Project.NameKey someParentProject = Project.NameKey someParentProject =
projectOperations.newProject().name("some-parent-project").create(); projectOperations.newProject().name("some-parent-project").create();
// Default for createEmptyCommit should match TestProjectConfig.
Project.NameKey someChildProject = Project.NameKey someChildProject =
projectOperations projectOperations
.newProject() .newProject()

View File

@@ -19,9 +19,11 @@ import static com.google.gerrit.acceptance.GitUtil.fetch;
import com.google.gerrit.acceptance.AbstractDaemonTest; import com.google.gerrit.acceptance.AbstractDaemonTest;
import com.google.gerrit.acceptance.PushOneCommit; import com.google.gerrit.acceptance.PushOneCommit;
import com.google.gerrit.acceptance.testsuite.project.ProjectOperations;
import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.reviewdb.client.Project;
import com.google.gerrit.reviewdb.client.RefNames; import com.google.gerrit.reviewdb.client.RefNames;
import com.google.gerrit.server.project.ProjectState; import com.google.gerrit.server.project.ProjectState;
import com.google.inject.Inject;
import java.util.Arrays; import java.util.Arrays;
import org.eclipse.jgit.junit.TestRepository; import org.eclipse.jgit.junit.TestRepository;
import org.eclipse.jgit.lib.Config; import org.eclipse.jgit.lib.Config;
@@ -29,6 +31,8 @@ import org.junit.Before;
import org.junit.Test; import org.junit.Test;
public class ProjectLevelConfigIT extends AbstractDaemonTest { public class ProjectLevelConfigIT extends AbstractDaemonTest {
@Inject private ProjectOperations projectOperations;
@Before @Before
public void setUp() throws Exception { public void setUp() throws Exception {
fetch(testRepo, RefNames.REFS_CONFIG + ":refs/heads/config"); fetch(testRepo, RefNames.REFS_CONFIG + ":refs/heads/config");
@@ -82,7 +86,7 @@ public class ProjectLevelConfigIT extends AbstractDaemonTest {
.to(RefNames.REFS_CONFIG) .to(RefNames.REFS_CONFIG)
.assertOkStatus(); .assertOkStatus();
Project.NameKey childProject = createProject("child", project); Project.NameKey childProject = projectOperations.newProject().parent(project).create();
TestRepository<?> childTestRepo = cloneProject(childProject); TestRepository<?> childTestRepo = cloneProject(childProject);
fetch(childTestRepo, RefNames.REFS_CONFIG + ":refs/heads/config"); fetch(childTestRepo, RefNames.REFS_CONFIG + ":refs/heads/config");
childTestRepo.reset("refs/heads/config"); childTestRepo.reset("refs/heads/config");
@@ -137,7 +141,7 @@ public class ProjectLevelConfigIT extends AbstractDaemonTest {
.to(RefNames.REFS_CONFIG) .to(RefNames.REFS_CONFIG)
.assertOkStatus(); .assertOkStatus();
Project.NameKey childProject = createProject("child", project); Project.NameKey childProject = projectOperations.newProject().parent(project).create();
TestRepository<?> childTestRepo = cloneProject(childProject); TestRepository<?> childTestRepo = cloneProject(childProject);
fetch(childTestRepo, RefNames.REFS_CONFIG + ":refs/heads/config"); fetch(childTestRepo, RefNames.REFS_CONFIG + ":refs/heads/config");
childTestRepo.reset("refs/heads/config"); childTestRepo.reset("refs/heads/config");