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
This commit is contained in:
Dave Borowitz
2015-03-12 10:29:09 -07:00
committed by David Pursehouse
parent 4ff91616a1
commit e6992e76f6
9 changed files with 62 additions and 80 deletions

View File

@@ -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.
*

View File

@@ -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);
}

View File

@@ -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

View File

@@ -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())

View File

@@ -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)

View File

@@ -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<ProjectInfo> 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<String, ProjectInfo> result = gApi.projects().list().withTree(true)
.getAsMap();

View File

@@ -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);

View File

@@ -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

View File

@@ -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;