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()); } }