blob: c1ece455ae3a5b1eeb1901c8f051bea66048744e [file] [log] [blame]
package com.google.gerrit.acceptance.rest.change;
import static com.google.common.truth.Truth.assertThat;
import static com.google.gerrit.acceptance.GitUtil.checkout;
import com.google.gerrit.acceptance.PushOneCommit;
import com.google.gerrit.extensions.client.SubmitType;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.revwalk.RevCommit;
import org.junit.Test;
import java.util.List;
public class SubmitByMergeIfNecessaryIT extends AbstractSubmitByMerge {
@Override
protected SubmitType getSubmitType() {
return SubmitType.MERGE_IF_NECESSARY;
}
@Test
public void submitWithFastForward() throws Exception {
Git git = createProject();
RevCommit oldHead = getRemoteHead();
PushOneCommit.Result change = createChange(git);
submit(change.getChangeId());
RevCommit head = getRemoteHead();
assertThat(head.getId()).isEqualTo(change.getCommitId());
assertThat(head.getParent(0)).isEqualTo(oldHead);
assertSubmitter(change.getChangeId(), 1);
}
@Test
public void submitMultipleChanges() throws Exception {
Git git = createProject();
RevCommit initialHead = getRemoteHead();
checkout(git, initialHead.getId().getName());
PushOneCommit.Result change2 = createChange(git, "Change 2", "b", "b");
checkout(git, initialHead.getId().getName());
PushOneCommit.Result change3 = createChange(git, "Change 3", "c", "c");
checkout(git, initialHead.getId().getName());
PushOneCommit.Result change4 = createChange(git, "Change 4", "d", "d");
submitStatusOnly(change2.getChangeId());
submitStatusOnly(change3.getChangeId());
submit(change4.getChangeId());
List<RevCommit> log = getRemoteLog();
RevCommit tip = log.get(0);
assertThat(tip.getParent(1).getShortMessage()).isEqualTo(
change4.getCommit().getShortMessage());
tip = tip.getParent(0);
assertThat(tip.getParent(1).getShortMessage()).isEqualTo(
change3.getCommit().getShortMessage());
tip = tip.getParent(0);
assertThat(tip.getShortMessage()).isEqualTo(
change2.getCommit().getShortMessage());
assertThat(tip.getParent(0).getId()).isEqualTo(initialHead.getId());
}
}