ChangeIT: Refactor tests for deletion of new changes

Instead of cloning the repo as "user" and then using git push to create
the change, use the change API to create the change. This avoids the
unnecessary cloning of the repository, and makes it more explicitly
clear which user is supposed to be the owner of the created change.

Change-Id: Id4a3ff77a6128d4500eeaba37d01d69b8253b165
This commit is contained in:
David Pursehouse
2018-07-05 12:03:57 +09:00
parent ba1f8b50e4
commit 1697a2bd2b

View File

@@ -442,12 +442,7 @@ public class ChangeIT extends AbstractDaemonTest {
@Test
public void deleteNewChangeAsAdmin() throws Exception {
PushOneCommit.Result changeResult = createChange();
String changeId = changeResult.getChangeId();
gApi.changes().id(changeId).delete();
assertThat(query(changeId)).isEmpty();
deleteChangeAsUser(admin, admin);
}
@Test
@@ -465,26 +460,29 @@ public class ChangeIT extends AbstractDaemonTest {
}
@Test
@TestProjectInput(cloneAs = "user")
public void deleteChangeAsUserWithDeleteOwnChangesPermissionForGroup() throws Exception {
allow(Permission.DELETE_OWN_CHANGES, REGISTERED_USERS, "refs/*");
deleteChangeAsUser();
deleteChangeAsUser(user, user);
}
@Test
@TestProjectInput(cloneAs = "user")
public void deleteChangeAsUserWithDeleteOwnChangesPermissionForOwners() throws Exception {
allow(Permission.DELETE_OWN_CHANGES, CHANGE_OWNER, "refs/*");
deleteChangeAsUser();
deleteChangeAsUser(user, user);
}
private void deleteChangeAsUser() throws Exception {
private void deleteChangeAsUser(TestAccount owner, TestAccount deleteAs) throws Exception {
try {
PushOneCommit.Result changeResult =
pushFactory.create(db, user.getIdent(), testRepo).to("refs/for/master");
String changeId = changeResult.getChangeId();
setApiUser(owner);
ChangeInput in = new ChangeInput();
in.project = project.get();
in.branch = "refs/heads/master";
in.subject = "test";
String changeId = gApi.changes().create(in).get().changeId;
setApiUser(user);
assertThat(gApi.changes().id(changeId).info().owner._accountId).isEqualTo(owner.id.get());
setApiUser(deleteAs);
gApi.changes().id(changeId).delete();
assertThat(query(changeId)).isEmpty();
@@ -494,17 +492,8 @@ public class ChangeIT extends AbstractDaemonTest {
}
@Test
@TestProjectInput(cloneAs = "user")
public void deleteNewChangeOfAnotherUserAsAdmin() throws Exception {
PushOneCommit.Result changeResult =
pushFactory.create(db, user.getIdent(), testRepo).to("refs/for/master");
changeResult.assertOkStatus();
String changeId = changeResult.getChangeId();
setApiUser(admin);
gApi.changes().id(changeId).delete();
assertThat(query(changeId)).isEmpty();
deleteChangeAsUser(user, admin);
}
@Test