package com.beijunyi.parallelgit.utils;
import java.io.IOException;
import java.util.Arrays;
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 org.junit.Assert.assertEquals;
public class CommitUtilsGetHistoryTest extends AbstractParallelGitTest {
@Before
public void setUp() throws IOException {
initRepository();
}
@Test
public void getCommitHistory_shouldReturnTheCommitsInReverseOrder() throws IOException {
String branch = "orphan_branch";
writeSomethingToCache();
RevCommit commit1 = commitToBranch(branch);
writeSomethingToCache();
RevCommit commit2 = commitToBranch(branch);
writeSomethingToCache();
RevCommit commit3 = commitToBranch(branch);
List<RevCommit> expected = Arrays.asList(commit3, commit2, commit1);
List<RevCommit> actual = CommitUtils.getHistory(commit3, repo);
assertEquals(expected, actual);
}
@Test
public void getCommitHistoryWithSkipAndLimit_shouldReturnTheCommitsInTheSelectedRange() throws IOException {
String branch = "orphan_branch";
writeSomethingToCache();
/*RevCommit commit1 = */commitToBranch(branch);
writeSomethingToCache();
RevCommit commit2 = commitToBranch(branch);
writeSomethingToCache();
RevCommit commit3 = commitToBranch(branch);
writeSomethingToCache();
RevCommit commit4 = commitToBranch(branch);
List<RevCommit> expected = Arrays.asList(commit3, commit2);
List<RevCommit> actual = CommitUtils.getHistory(commit4, 1, 2, repo.newObjectReader());
assertEquals(expected, actual);
}
@Test
public void getCommitHistoryWhenSkipIsNotZeroAndLimitIsIntegerMax_shouldReturnTailCommits() throws IOException {
String branch = "orphan_branch";
writeSomethingToCache();
RevCommit commit1 = commitToBranch(branch);
writeSomethingToCache();
RevCommit commit2 = commitToBranch(branch);
writeSomethingToCache();
RevCommit commit3 = commitToBranch(branch);
writeSomethingToCache();
RevCommit commit4 = commitToBranch(branch);
List<RevCommit> expected = Arrays.asList(commit3, commit2, commit1);
List<RevCommit> actual = CommitUtils.getHistory(commit4, 1, Integer.MAX_VALUE, repo.newObjectReader());
assertEquals(expected, actual);
}
}