package com.beijunyi.parallelgit.utils;
import java.io.IOException;
import java.util.List;
import com.beijunyi.parallelgit.AbstractParallelGitTest;
import com.beijunyi.parallelgit.utils.exceptions.NoSuchBranchException;
import org.eclipse.jgit.lib.AnyObjectId;
import org.eclipse.jgit.revwalk.RevCommit;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.assertArrayEquals;
public class BranchUtilsGetBranchHistoryTest extends AbstractParallelGitTest {
@Before
public void setupRepository() throws IOException {
initRepository();
}
@Test
public void getBranchHistory_shouldReturnAllCommitsStartedFromTheHeadCommit() throws IOException {
String branch = "test_branch";
AnyObjectId[] expected = new AnyObjectId[3];
writeSomethingToCache();
expected[2] = commitToBranch(branch);
writeSomethingToCache();
expected[1] = commitToBranch(branch, expected[2]);
writeSomethingToCache();
expected[0] = commitToBranch(branch, expected[1]);
List<RevCommit> history = BranchUtils.getHistory(branch, repo);
AnyObjectId[] actual = new AnyObjectId[3];
history.toArray(actual);
assertArrayEquals(expected, actual);
}
@Test(expected = NoSuchBranchException.class)
public void getHistoryOfNonExistentBranch_shouldThrowNoSuchBranchException() throws IOException {
String branch = "non_existent_branch";
BranchUtils.getHistory(branch, repo);
}
}