package com.beijunyi.parallelgit.utils;
import java.io.IOException;
import java.util.List;
import com.beijunyi.parallelgit.AbstractParallelGitTest;
import org.eclipse.jgit.revwalk.RevCommit;
import org.junit.Before;
import org.junit.Test;
import static com.beijunyi.parallelgit.utils.BranchUtils.createBranch;
import static com.beijunyi.parallelgit.utils.CommitUtils.listUnmergedCommits;
import static org.eclipse.jgit.lib.Constants.MASTER;
import static org.junit.Assert.*;
public class CommitUtilsListUnmergedCommitsTest extends AbstractParallelGitTest {
@Before
public void setUp() throws IOException {
initRepository();
}
@Test
public void listUnmergedCommitsWhenBranchIsAheadOfMaster_shouldReturnTheNewCommitsInBranchInReverseOrder() throws IOException {
writeSomethingToCache();
RevCommit masterFirst = commitToMaster();
writeSomethingToCache();
RevCommit branchFirst = commitToBranch("test_branch", masterFirst);
writeSomethingToCache();
RevCommit branchSecond = commitToBranch("test_branch");
List<RevCommit> unmerged = listUnmergedCommits("test_branch", MASTER, repo);
assertEquals(branchSecond, unmerged.get(0));
assertEquals(branchFirst, unmerged.get(1));
}
@Test
public void listUnmergedCommitsWhenMasterIsSameAsBranch_shouldReturnEmptyList() throws IOException {
writeSomethingToCache();
RevCommit masterFirst = commitToMaster();
createBranch("test_branch", masterFirst, repo);
List<RevCommit> unmerged = listUnmergedCommits("test_branch", MASTER, repo);
assertTrue(unmerged.isEmpty());
}
@Test
public void listUnmergedCommitsWhenMasterIsAheadOfBranch_shouldReturnEmptyList() throws IOException {
writeSomethingToCache();
RevCommit masterFirst = commitToMaster();
createBranch("test_branch", masterFirst, repo);
writeSomethingToCache();
commitToMaster();
List<RevCommit> unmerged = listUnmergedCommits("test_branch", MASTER, repo);
assertTrue(unmerged.isEmpty());
}
}