From e6992e76f64da1e04437fb79abece5bf9b0cdf97 Mon Sep 17 00:00:00 2001 From: Dave Borowitz Date: Thu, 12 Mar 2015 10:29:09 -0700 Subject: [PATCH] AbstractDaemonTest: Create projects using API instead of SSH Move the methods from GitUtil into AbstractDaemonTest, as all callers are subclasses anyway so they're passing in the same gApi instance. We can't just replace createProject(name) with gApi.projects().create(name) as the value for createEmptyCommit differs from the default; Change-Id: I525b0a6ffb7ef5d4c3e0324915519325960214fd --- .../gerrit/acceptance/AbstractDaemonTest.java | 25 +++++++++++++- .../com/google/gerrit/acceptance/GitUtil.java | 34 ------------------- .../rest/project/GarbageCollectionIT.java | 3 +- .../rest/project/GetChildProjectIT.java | 15 ++++---- .../rest/project/ListChildProjectsIT.java | 19 +++++------ .../rest/project/ListProjectsIT.java | 29 ++++++++-------- .../acceptance/rest/project/SetParentIT.java | 9 +++-- .../acceptance/ssh/GarbageCollectionIT.java | 5 ++- .../acceptance/ssh/JschVerifyFalseBugIT.java | 3 +- 9 files changed, 62 insertions(+), 80 deletions(-) diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/AbstractDaemonTest.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/AbstractDaemonTest.java index deda4c81ad..bb4f474eab 100644 --- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/AbstractDaemonTest.java +++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/AbstractDaemonTest.java @@ -203,7 +203,7 @@ public abstract class AbstractDaemonTest { ProjectInput projectInput = projectInput(description); project = new Project.NameKey(projectInput.name); - gApi.projects().create(projectInput); + createProject(projectInput); git = cloneProject(sshSession.getUrl() + "/" + project.get()); } @@ -231,6 +231,29 @@ public abstract class AbstractDaemonTest { return in; } + protected void createProject(String name) throws RestApiException { + createProject(name, null); + } + + protected void createProject(String name, Project.NameKey parent) + throws RestApiException { + // Default for createEmptyCommit should match TestProjectConfig. + createProject(name, parent, true); + } + + protected void createProject(String name, Project.NameKey parent, + boolean createEmptyCommit) throws RestApiException { + ProjectInput in = new ProjectInput(); + in.name = name; + in.parent = parent != null ? parent.get() : null; + in.createEmptyCommit = createEmptyCommit; + createProject(in); + } + + protected void createProject(ProjectInput in) throws RestApiException { + gApi.projects().create(in); + } + /** * Modify a project input before creating the initial test project. * diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/GitUtil.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/GitUtil.java index 494f094bc7..e8ae5ad198 100644 --- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/GitUtil.java +++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/GitUtil.java @@ -18,7 +18,6 @@ import static com.google.common.base.Preconditions.checkState; import com.google.common.collect.Iterables; import com.google.gerrit.common.FooterConstants; -import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.testutil.TempFileUtil; import com.jcraft.jsch.JSch; @@ -75,39 +74,6 @@ public class GitUtil { }); } - public static void createProject(SshSession s, String name) - throws JSchException, IOException { - createProject(s, name, null); - } - - public static void createProject(SshSession s, String name, Project.NameKey parent) - throws JSchException, IOException { - createProject(s, name, parent, true); - } - - public static void createProject(SshSession s, String name, - Project.NameKey parent, boolean emptyCommit) - throws JSchException, IOException { - StringBuilder b = new StringBuilder(); - b.append("gerrit create-project"); - if (emptyCommit) { - b.append(" --empty-commit"); - } - b.append(" --name \""); - b.append(name); - b.append("\""); - if (parent != null) { - b.append(" --parent \""); - b.append(parent.get()); - b.append("\""); - } - s.exec(b.toString()); - if (s.hasError()) { - throw new IllegalStateException( - "gerrit create-project returned error: " + s.getError()); - } - } - public static Git cloneProject(String url) throws GitAPIException, IOException { return cloneProject(url, true); } diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/GarbageCollectionIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/GarbageCollectionIT.java index 6aa3af6ef2..c929334317 100644 --- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/GarbageCollectionIT.java +++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/GarbageCollectionIT.java @@ -15,7 +15,6 @@ package com.google.gerrit.acceptance.rest.project; import static com.google.common.truth.Truth.assertThat; -import static com.google.gerrit.acceptance.GitUtil.createProject; import com.google.gerrit.acceptance.AbstractDaemonTest; import com.google.gerrit.acceptance.GcAssert; @@ -40,7 +39,7 @@ public class GarbageCollectionIT extends AbstractDaemonTest { @Before public void setUp() throws Exception { project2 = new Project.NameKey("p2"); - createProject(sshSession, project2.get()); + createProject(project2.get()); } @Test diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/GetChildProjectIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/GetChildProjectIT.java index ab83b4b59d..410b5b011e 100644 --- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/GetChildProjectIT.java +++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/GetChildProjectIT.java @@ -15,7 +15,6 @@ package com.google.gerrit.acceptance.rest.project; import static com.google.common.truth.Truth.assertThat; -import static com.google.gerrit.acceptance.GitUtil.createProject; import static com.google.gerrit.acceptance.rest.project.ProjectAssert.assertProjectInfo; import com.google.gerrit.acceptance.AbstractDaemonTest; @@ -39,9 +38,9 @@ public class GetChildProjectIT extends AbstractDaemonTest { public void getNonChildProject_NotFound() throws Exception { SshSession sshSession = new SshSession(server, admin); Project.NameKey p1 = new Project.NameKey("p1"); - createProject(sshSession, p1.get()); + createProject(p1.get()); Project.NameKey p2 = new Project.NameKey("p2"); - createProject(sshSession, p2.get()); + createProject(p2.get()); sshSession.close(); assertChildNotFound(p1, p2.get()); @@ -51,7 +50,7 @@ public class GetChildProjectIT extends AbstractDaemonTest { public void getChildProject() throws Exception { SshSession sshSession = new SshSession(server, admin); Project.NameKey child = new Project.NameKey("p1"); - createProject(sshSession, child.get()); + createProject(child.get()); sshSession.close(); ProjectInfo childInfo = gApi.projects().name(allProjects.get()) @@ -63,9 +62,9 @@ public class GetChildProjectIT extends AbstractDaemonTest { public void getGrandChildProject_NotFound() throws Exception { SshSession sshSession = new SshSession(server, admin); Project.NameKey child = new Project.NameKey("p1"); - createProject(sshSession, child.get()); + createProject(child.get()); Project.NameKey grandChild = new Project.NameKey("p1.1"); - createProject(sshSession, grandChild.get(), child); + createProject(grandChild.get(), child); sshSession.close(); assertChildNotFound(allProjects, grandChild.get()); @@ -75,9 +74,9 @@ public class GetChildProjectIT extends AbstractDaemonTest { public void getGrandChildProjectWithRecursiveFlag() throws Exception { SshSession sshSession = new SshSession(server, admin); Project.NameKey child = new Project.NameKey("p1"); - createProject(sshSession, child.get()); + createProject(child.get()); Project.NameKey grandChild = new Project.NameKey("p1.1"); - createProject(sshSession, grandChild.get(), child); + createProject(grandChild.get(), child); sshSession.close(); ProjectInfo grandChildInfo = gApi.projects().name(allProjects.get()) diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/ListChildProjectsIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/ListChildProjectsIT.java index f84157d5bc..384991d020 100644 --- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/ListChildProjectsIT.java +++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/ListChildProjectsIT.java @@ -15,7 +15,6 @@ package com.google.gerrit.acceptance.rest.project; import static com.google.common.truth.Truth.assertThat; -import static com.google.gerrit.acceptance.GitUtil.createProject; import static com.google.gerrit.acceptance.rest.project.ProjectAssert.assertThatNameList; import com.google.gerrit.acceptance.AbstractDaemonTest; @@ -51,11 +50,11 @@ public class ListChildProjectsIT extends AbstractDaemonTest { @Test public void listChildren() throws Exception { Project.NameKey child1 = new Project.NameKey("p1"); - createProject(sshSession, child1.get()); + createProject(child1.get()); Project.NameKey child2 = new Project.NameKey("p2"); - createProject(sshSession, child2.get()); + createProject(child2.get()); Project.NameKey child1_1 = new Project.NameKey("p1.1"); - createProject(sshSession, child1_1.get(), child1); + createProject(child1_1.get(), child1); assertThatNameList(gApi.projects().name(allProjects.get()).children()) .containsExactly(allUsers, project, child1, child2).inOrder(); @@ -66,16 +65,16 @@ public class ListChildProjectsIT extends AbstractDaemonTest { @Test public void listChildrenRecursively() throws Exception { Project.NameKey child1 = new Project.NameKey("p1"); - createProject(sshSession, child1.get()); - createProject(sshSession, "p2"); + createProject(child1.get()); + createProject("p2"); Project.NameKey child1_1 = new Project.NameKey("p1.1"); - createProject(sshSession, child1_1.get(), child1); + createProject(child1_1.get(), child1); Project.NameKey child1_2 = new Project.NameKey("p1.2"); - createProject(sshSession, child1_2.get(), child1); + createProject(child1_2.get(), child1); Project.NameKey child1_1_1 = new Project.NameKey("p1.1.1"); - createProject(sshSession, child1_1_1.get(), child1_1); + createProject(child1_1_1.get(), child1_1); Project.NameKey child1_1_1_1 = new Project.NameKey("p1.1.1.1"); - createProject(sshSession, child1_1_1_1.get(), child1_1_1); + createProject(child1_1_1_1.get(), child1_1_1); assertThatNameList(gApi.projects().name(child1.get()).children(true)) .containsExactly(child1_1, child1_1_1, child1_1_1_1, child1_2) diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/ListProjectsIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/ListProjectsIT.java index fda48f5cbc..f04f471426 100644 --- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/ListProjectsIT.java +++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/ListProjectsIT.java @@ -15,7 +15,6 @@ package com.google.gerrit.acceptance.rest.project; import static com.google.common.truth.Truth.assertThat; -import static com.google.gerrit.acceptance.GitUtil.createProject; import static com.google.gerrit.acceptance.rest.project.ProjectAssert.assertThatNameList; import static com.google.gerrit.server.group.SystemGroupBackend.REGISTERED_USERS; @@ -48,7 +47,7 @@ public class ListProjectsIT extends AbstractDaemonTest { @Test public void listProjects() throws Exception { Project.NameKey someProject = new Project.NameKey("some-project"); - createProject(sshSession, someProject.get()); + createProject(someProject.get()); assertThatNameList(gApi.projects().list().get()) .containsExactly(allProjects, allUsers, project, someProject).inOrder(); } @@ -97,7 +96,7 @@ public class ListProjectsIT extends AbstractDaemonTest { @Test public void listProjectsWithLimit() throws Exception { for (int i = 0; i < 5; i++) { - createProject(sshSession, new Project.NameKey("someProject" + i).get()); + createProject(new Project.NameKey("someProject" + i).get()); } // 5 plus All-Projects, All-Users, and p. @@ -111,12 +110,12 @@ public class ListProjectsIT extends AbstractDaemonTest { @Test public void listProjectsWithPrefix() throws Exception { Project.NameKey someProject = new Project.NameKey("some-project"); - createProject(sshSession, someProject.get()); + createProject(someProject.get()); Project.NameKey someOtherProject = new Project.NameKey("some-other-project"); - createProject(sshSession, someOtherProject.get()); + createProject(someOtherProject.get()); Project.NameKey projectAwesome = new Project.NameKey("project-awesome"); - createProject(sshSession, projectAwesome.get()); + createProject(projectAwesome.get()); assertBadRequest(gApi.projects().list().withPrefix("some").withRegex(".*")); assertBadRequest(gApi.projects().list().withPrefix("some") @@ -128,12 +127,12 @@ public class ListProjectsIT extends AbstractDaemonTest { @Test public void listProjectsWithRegex() throws Exception { Project.NameKey someProject = new Project.NameKey("some-project"); - createProject(sshSession, someProject.get()); + createProject(someProject.get()); Project.NameKey someOtherProject = new Project.NameKey("some-other-project"); - createProject(sshSession, someOtherProject.get()); + createProject(someOtherProject.get()); Project.NameKey projectAwesome = new Project.NameKey("project-awesome"); - createProject(sshSession, projectAwesome.get()); + createProject(projectAwesome.get()); assertBadRequest(gApi.projects().list().withRegex("[.*")); assertBadRequest(gApi.projects().list().withRegex(".*").withPrefix("p")); @@ -152,7 +151,7 @@ public class ListProjectsIT extends AbstractDaemonTest { @Test public void listProjectsWithStart() throws Exception { for (int i = 0; i < 5; i++) { - createProject(sshSession, new Project.NameKey("someProject" + i).get()); + createProject(new Project.NameKey("someProject" + i).get()); } List all = gApi.projects().list().get(); @@ -166,12 +165,12 @@ public class ListProjectsIT extends AbstractDaemonTest { @Test public void listProjectsWithSubstring() throws Exception { Project.NameKey someProject = new Project.NameKey("some-project"); - createProject(sshSession, someProject.get()); + createProject(someProject.get()); Project.NameKey someOtherProject = new Project.NameKey("some-other-project"); - createProject(sshSession, someOtherProject.get()); + createProject(someOtherProject.get()); Project.NameKey projectAwesome = new Project.NameKey("project-awesome"); - createProject(sshSession, projectAwesome.get()); + createProject(projectAwesome.get()); assertBadRequest(gApi.projects().list().withSubstring("some") .withRegex(".*")); @@ -186,10 +185,10 @@ public class ListProjectsIT extends AbstractDaemonTest { public void listProjectsWithTree() throws Exception { Project.NameKey someParentProject = new Project.NameKey("some-parent-project"); - createProject(sshSession, someParentProject.get()); + createProject(someParentProject.get()); Project.NameKey someChildProject = new Project.NameKey("some-child-project"); - createProject(sshSession, someChildProject.get(), someParentProject); + createProject(someChildProject.get(), someParentProject); Map result = gApi.projects().list().withTree(true) .getAsMap(); diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/SetParentIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/SetParentIT.java index ac90ac0c19..4ff1f0e903 100644 --- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/SetParentIT.java +++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/SetParentIT.java @@ -15,7 +15,6 @@ package com.google.gerrit.acceptance.rest.project; import static com.google.common.truth.Truth.assertThat; -import static com.google.gerrit.acceptance.GitUtil.createProject; import com.google.gerrit.acceptance.AbstractDaemonTest; import com.google.gerrit.acceptance.RestResponse; @@ -29,7 +28,7 @@ public class SetParentIT extends AbstractDaemonTest { @Test public void setParent_Forbidden() throws Exception { String parent = "parent"; - createProject(sshSession, parent, null, true); + createProject(parent, null, true); RestResponse r = userSession.put("/projects/" + project.get() + "/parent", newParentInput(parent)); @@ -40,7 +39,7 @@ public class SetParentIT extends AbstractDaemonTest { @Test public void setParent() throws Exception { String parent = "parent"; - createProject(sshSession, parent, null, true); + createProject(parent, null, true); RestResponse r = adminSession.put("/projects/" + project.get() + "/parent", newParentInput(parent)); @@ -73,14 +72,14 @@ public class SetParentIT extends AbstractDaemonTest { r.consume(); String child = "child"; - createProject(sshSession, child, project, true); + createProject(child, project, true); r = adminSession.put("/projects/" + project.get() + "/parent", newParentInput(child)); assertThat(r.getStatusCode()).isEqualTo(HttpStatus.SC_CONFLICT); r.consume(); String grandchild = "grandchild"; - createProject(sshSession, grandchild, new Project.NameKey(child), true); + createProject(grandchild, new Project.NameKey(child), true); r = adminSession.put("/projects/" + project.get() + "/parent", newParentInput(grandchild)); assertThat(r.getStatusCode()).isEqualTo(HttpStatus.SC_CONFLICT); diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/ssh/GarbageCollectionIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/ssh/GarbageCollectionIT.java index 2bdd894848..8af4c3bf72 100644 --- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/ssh/GarbageCollectionIT.java +++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/ssh/GarbageCollectionIT.java @@ -16,7 +16,6 @@ package com.google.gerrit.acceptance.ssh; import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assert_; -import static com.google.gerrit.acceptance.GitUtil.createProject; import com.google.gerrit.acceptance.AbstractDaemonTest; import com.google.gerrit.acceptance.GcAssert; @@ -53,10 +52,10 @@ public class GarbageCollectionIT extends AbstractDaemonTest { @Before public void setUp() throws Exception { project2 = new Project.NameKey("p2"); - createProject(sshSession, project2.get()); + createProject(project2.get()); project3 = new Project.NameKey("p3"); - createProject(sshSession, project3.get()); + createProject(project3.get()); } @Test diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/ssh/JschVerifyFalseBugIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/ssh/JschVerifyFalseBugIT.java index c9e0a89291..27a70b056c 100644 --- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/ssh/JschVerifyFalseBugIT.java +++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/ssh/JschVerifyFalseBugIT.java @@ -16,7 +16,6 @@ package com.google.gerrit.acceptance.ssh; import static com.google.common.truth.Truth.assertThat; import static com.google.gerrit.acceptance.GitUtil.cloneProject; -import static com.google.gerrit.acceptance.GitUtil.createProject; import com.google.gerrit.acceptance.AbstractDaemonTest; import com.google.gerrit.acceptance.NoHttpd; @@ -50,7 +49,7 @@ public class JschVerifyFalseBugIT extends AbstractDaemonTest { public Void call() throws Exception { for (int i = 1; i < 100; i++) { String p = "p" + i; - createProject(sshSession, p); + createProject(p); cloneProject(sshSession.getUrl() + "/" + p); } return null;