SubmitByRebaseIfNecessaryIT: Test ref-updated event for multiple changes
Update the test to confirm that only one ref-updated event is emitted when multiple changes are submitted with rebase. Change-Id: I55f8b9c91f0a6fe8115ca539a4498a9deaf70ada
This commit is contained in:
parent
13a073337e
commit
764af4402c
@ -18,6 +18,7 @@ import static com.google.common.truth.Truth.assertThat;
|
|||||||
import static com.google.gerrit.acceptance.GitUtil.getChangeId;
|
import static com.google.gerrit.acceptance.GitUtil.getChangeId;
|
||||||
import static com.google.gerrit.acceptance.GitUtil.pushHead;
|
import static com.google.gerrit.acceptance.GitUtil.pushHead;
|
||||||
|
|
||||||
|
import com.google.common.collect.ImmutableList;
|
||||||
import com.google.common.collect.Iterables;
|
import com.google.common.collect.Iterables;
|
||||||
import com.google.gerrit.acceptance.PushOneCommit;
|
import com.google.gerrit.acceptance.PushOneCommit;
|
||||||
import com.google.gerrit.acceptance.TestProjectInput;
|
import com.google.gerrit.acceptance.TestProjectInput;
|
||||||
@ -32,6 +33,9 @@ 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.Project;
|
import com.google.gerrit.reviewdb.client.Project;
|
||||||
import com.google.gerrit.server.change.Submit.TestSubmitInput;
|
import com.google.gerrit.server.change.Submit.TestSubmitInput;
|
||||||
|
import com.google.gerrit.server.data.RefUpdateAttribute;
|
||||||
|
import com.google.gerrit.server.events.RefEvent;
|
||||||
|
import com.google.gerrit.server.events.RefUpdatedEvent;
|
||||||
|
|
||||||
import org.eclipse.jgit.lib.ObjectId;
|
import org.eclipse.jgit.lib.ObjectId;
|
||||||
import org.eclipse.jgit.lib.Repository;
|
import org.eclipse.jgit.lib.Repository;
|
||||||
@ -70,20 +74,35 @@ public class SubmitByRebaseIfNecessaryIT extends AbstractSubmit {
|
|||||||
createChange("Change 1", "a.txt", "content");
|
createChange("Change 1", "a.txt", "content");
|
||||||
submit(change.getChangeId());
|
submit(change.getChangeId());
|
||||||
|
|
||||||
RevCommit oldHead = getRemoteHead();
|
RevCommit headAfterFirstSubmit = getRemoteHead();
|
||||||
testRepo.reset(initialHead);
|
testRepo.reset(initialHead);
|
||||||
PushOneCommit.Result change2 =
|
PushOneCommit.Result change2 =
|
||||||
createChange("Change 2", "b.txt", "other content");
|
createChange("Change 2", "b.txt", "other content");
|
||||||
submit(change2.getChangeId());
|
submit(change2.getChangeId());
|
||||||
assertRebase(testRepo, false);
|
assertRebase(testRepo, false);
|
||||||
RevCommit head = getRemoteHead();
|
RevCommit headAfterSecondSubmit = getRemoteHead();
|
||||||
assertThat(head.getParent(0)).isEqualTo(oldHead);
|
assertThat(headAfterSecondSubmit.getParent(0))
|
||||||
|
.isEqualTo(headAfterFirstSubmit);
|
||||||
assertApproved(change2.getChangeId());
|
assertApproved(change2.getChangeId());
|
||||||
assertCurrentRevision(change2.getChangeId(), 2, head);
|
assertCurrentRevision(change2.getChangeId(), 2, headAfterSecondSubmit);
|
||||||
assertSubmitter(change2.getChangeId(), 1);
|
assertSubmitter(change2.getChangeId(), 1);
|
||||||
assertSubmitter(change2.getChangeId(), 2);
|
assertSubmitter(change2.getChangeId(), 2);
|
||||||
assertPersonEquals(admin.getIdent(), head.getAuthorIdent());
|
assertPersonEquals(admin.getIdent(),
|
||||||
assertPersonEquals(admin.getIdent(), head.getCommitterIdent());
|
headAfterSecondSubmit.getAuthorIdent());
|
||||||
|
assertPersonEquals(admin.getIdent(),
|
||||||
|
headAfterSecondSubmit.getCommitterIdent());
|
||||||
|
|
||||||
|
ImmutableList<RefEvent> refUpdates = eventRecorder.getRefUpdates(
|
||||||
|
project.get(), "refs/heads/master", 2);
|
||||||
|
|
||||||
|
RefUpdateAttribute refUpdate =
|
||||||
|
((RefUpdatedEvent)(refUpdates.get(0))).refUpdate.get();
|
||||||
|
assertThat(refUpdate.oldRev).isEqualTo(initialHead.name());
|
||||||
|
assertThat(refUpdate.newRev).isEqualTo(headAfterFirstSubmit.name());
|
||||||
|
|
||||||
|
refUpdate = ((RefUpdatedEvent)(refUpdates.get(1))).refUpdate.get();
|
||||||
|
assertThat(refUpdate.oldRev).isEqualTo(headAfterFirstSubmit.name());
|
||||||
|
assertThat(refUpdate.newRev).isEqualTo(headAfterSecondSubmit.name());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -92,6 +111,9 @@ public class SubmitByRebaseIfNecessaryIT extends AbstractSubmit {
|
|||||||
PushOneCommit.Result change1 =
|
PushOneCommit.Result change1 =
|
||||||
createChange("Change 1", "a.txt", "content");
|
createChange("Change 1", "a.txt", "content");
|
||||||
submit(change1.getChangeId());
|
submit(change1.getChangeId());
|
||||||
|
RevCommit headAfterFirstSubmit = getRemoteHead();
|
||||||
|
assertThat(headAfterFirstSubmit.name())
|
||||||
|
.isEqualTo(change1.getCommit().name());
|
||||||
|
|
||||||
testRepo.reset(initialHead);
|
testRepo.reset(initialHead);
|
||||||
PushOneCommit.Result change2 =
|
PushOneCommit.Result change2 =
|
||||||
@ -107,12 +129,12 @@ public class SubmitByRebaseIfNecessaryIT extends AbstractSubmit {
|
|||||||
assertApproved(change2.getChangeId());
|
assertApproved(change2.getChangeId());
|
||||||
assertApproved(change3.getChangeId());
|
assertApproved(change3.getChangeId());
|
||||||
|
|
||||||
RevCommit head = parse(getRemoteHead());
|
RevCommit headAfterSecondSubmit = parse(getRemoteHead());
|
||||||
assertThat(head.getShortMessage()).isEqualTo("Change 3");
|
assertThat(headAfterSecondSubmit.getShortMessage()).isEqualTo("Change 3");
|
||||||
assertThat(head).isNotEqualTo(change3.getCommit());
|
assertThat(headAfterSecondSubmit).isNotEqualTo(change3.getCommit());
|
||||||
assertCurrentRevision(change3.getChangeId(), 2, head);
|
assertCurrentRevision(change3.getChangeId(), 2, headAfterSecondSubmit);
|
||||||
|
|
||||||
RevCommit parent = parse(head.getParent(0));
|
RevCommit parent = parse(headAfterSecondSubmit.getParent(0));
|
||||||
assertThat(parent.getShortMessage()).isEqualTo("Change 2");
|
assertThat(parent.getShortMessage()).isEqualTo("Change 2");
|
||||||
assertThat(parent).isNotEqualTo(change2.getCommit());
|
assertThat(parent).isNotEqualTo(change2.getCommit());
|
||||||
assertCurrentRevision(change2.getChangeId(), 2, parent);
|
assertCurrentRevision(change2.getChangeId(), 2, parent);
|
||||||
@ -120,6 +142,17 @@ public class SubmitByRebaseIfNecessaryIT extends AbstractSubmit {
|
|||||||
RevCommit grandparent = parse(parent.getParent(0));
|
RevCommit grandparent = parse(parent.getParent(0));
|
||||||
assertThat(grandparent).isEqualTo(change1.getCommit());
|
assertThat(grandparent).isEqualTo(change1.getCommit());
|
||||||
assertCurrentRevision(change1.getChangeId(), 1, grandparent);
|
assertCurrentRevision(change1.getChangeId(), 1, grandparent);
|
||||||
|
|
||||||
|
ImmutableList<RefEvent> refUpdates = eventRecorder.getRefUpdates(
|
||||||
|
project.get(), "refs/heads/master", 2);
|
||||||
|
RefUpdateAttribute refUpdate =
|
||||||
|
((RefUpdatedEvent)(refUpdates.get(0))).refUpdate.get();
|
||||||
|
assertThat(refUpdate.oldRev).isEqualTo(initialHead.name());
|
||||||
|
assertThat(refUpdate.newRev).isEqualTo(headAfterFirstSubmit.name());
|
||||||
|
|
||||||
|
refUpdate = ((RefUpdatedEvent)(refUpdates.get(1))).refUpdate.get();
|
||||||
|
assertThat(refUpdate.oldRev).isEqualTo(headAfterFirstSubmit.name());
|
||||||
|
assertThat(refUpdate.newRev).isEqualTo(headAfterSecondSubmit.name());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
Loading…
Reference in New Issue
Block a user