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.pushHead;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.common.collect.Iterables;
|
||||
import com.google.gerrit.acceptance.PushOneCommit;
|
||||
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.Project;
|
||||
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.Repository;
|
||||
@ -70,20 +74,35 @@ public class SubmitByRebaseIfNecessaryIT extends AbstractSubmit {
|
||||
createChange("Change 1", "a.txt", "content");
|
||||
submit(change.getChangeId());
|
||||
|
||||
RevCommit oldHead = getRemoteHead();
|
||||
RevCommit headAfterFirstSubmit = getRemoteHead();
|
||||
testRepo.reset(initialHead);
|
||||
PushOneCommit.Result change2 =
|
||||
createChange("Change 2", "b.txt", "other content");
|
||||
submit(change2.getChangeId());
|
||||
assertRebase(testRepo, false);
|
||||
RevCommit head = getRemoteHead();
|
||||
assertThat(head.getParent(0)).isEqualTo(oldHead);
|
||||
RevCommit headAfterSecondSubmit = getRemoteHead();
|
||||
assertThat(headAfterSecondSubmit.getParent(0))
|
||||
.isEqualTo(headAfterFirstSubmit);
|
||||
assertApproved(change2.getChangeId());
|
||||
assertCurrentRevision(change2.getChangeId(), 2, head);
|
||||
assertCurrentRevision(change2.getChangeId(), 2, headAfterSecondSubmit);
|
||||
assertSubmitter(change2.getChangeId(), 1);
|
||||
assertSubmitter(change2.getChangeId(), 2);
|
||||
assertPersonEquals(admin.getIdent(), head.getAuthorIdent());
|
||||
assertPersonEquals(admin.getIdent(), head.getCommitterIdent());
|
||||
assertPersonEquals(admin.getIdent(),
|
||||
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
|
||||
@ -92,6 +111,9 @@ public class SubmitByRebaseIfNecessaryIT extends AbstractSubmit {
|
||||
PushOneCommit.Result change1 =
|
||||
createChange("Change 1", "a.txt", "content");
|
||||
submit(change1.getChangeId());
|
||||
RevCommit headAfterFirstSubmit = getRemoteHead();
|
||||
assertThat(headAfterFirstSubmit.name())
|
||||
.isEqualTo(change1.getCommit().name());
|
||||
|
||||
testRepo.reset(initialHead);
|
||||
PushOneCommit.Result change2 =
|
||||
@ -107,12 +129,12 @@ public class SubmitByRebaseIfNecessaryIT extends AbstractSubmit {
|
||||
assertApproved(change2.getChangeId());
|
||||
assertApproved(change3.getChangeId());
|
||||
|
||||
RevCommit head = parse(getRemoteHead());
|
||||
assertThat(head.getShortMessage()).isEqualTo("Change 3");
|
||||
assertThat(head).isNotEqualTo(change3.getCommit());
|
||||
assertCurrentRevision(change3.getChangeId(), 2, head);
|
||||
RevCommit headAfterSecondSubmit = parse(getRemoteHead());
|
||||
assertThat(headAfterSecondSubmit.getShortMessage()).isEqualTo("Change 3");
|
||||
assertThat(headAfterSecondSubmit).isNotEqualTo(change3.getCommit());
|
||||
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).isNotEqualTo(change2.getCommit());
|
||||
assertCurrentRevision(change2.getChangeId(), 2, parent);
|
||||
@ -120,6 +142,17 @@ public class SubmitByRebaseIfNecessaryIT extends AbstractSubmit {
|
||||
RevCommit grandparent = parse(parent.getParent(0));
|
||||
assertThat(grandparent).isEqualTo(change1.getCommit());
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user