package com.beijunyi.parallelgit.utils; import java.io.IOException; import com.beijunyi.parallelgit.AbstractParallelGitTest; import org.eclipse.jgit.dircache.DirCache; import org.eclipse.jgit.lib.AnyObjectId; import org.eclipse.jgit.lib.Ref; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.assertNotNull; public class CacheUtilsCreateTest extends AbstractParallelGitTest { @Before public void setUp() throws IOException { initRepository(); } @Test public void createCacheFromCommit_theResultCacheShouldContainTheFilesInTheSpecifiedCommit() throws IOException { writeToCache("/file1.txt"); writeToCache("/file2.txt"); AnyObjectId commitId = commit(someCommitMessage(), null); DirCache cache = CacheUtils.forRevision(commitId, repo); assertNotNull(CacheUtils.getEntry("/file1.txt", cache)); assertNotNull(CacheUtils.getEntry("/file2.txt", cache)); } @Test public void createCacheFromTag_theResultCacheShouldContainTheFilesInTheTaggedCommit() throws IOException { writeToCache("/file1.txt"); writeToCache("/file2.txt"); AnyObjectId tagId = TagUtils.tagCommit("test_tag", commit(someCommitMessage(), null), repo).getObjectId(); DirCache cache = CacheUtils.forRevision(tagId, repo); assertNotNull(CacheUtils.getEntry("/file1.txt", cache)); assertNotNull(CacheUtils.getEntry("/file2.txt", cache)); } @Test public void createCacheFromTagRef_theResultCacheShouldContainTheFilesInTheTaggedCommit() throws IOException { writeToCache("/file1.txt"); writeToCache("/file2.txt"); Ref tagRef = TagUtils.tagCommit("test_tag", commit(someCommitMessage(), null), repo); DirCache cache = CacheUtils.forRevision(tagRef, repo); assertNotNull(CacheUtils.getEntry("/file1.txt", cache)); assertNotNull(CacheUtils.getEntry("/file2.txt", cache)); } @Test public void createCacheFromBranch_theResultCacheShouldContainTheFilesInTheBranchHeadCommit() throws IOException { writeToCache("/file1.txt"); writeToCache("/file2.txt"); commitToBranch("test_branch", someCommitMessage(), null); DirCache cache = CacheUtils.forRevision("test_branch", repo); assertNotNull(CacheUtils.getEntry("/file1.txt", cache)); assertNotNull(CacheUtils.getEntry("/file2.txt", cache)); } @Test public void createCacheFromTree_theResultCacheShouldContainTheFilesInTheSpecifiedTree() throws IOException { writeToCache("/file1.txt"); writeToCache("/file2.txt"); AnyObjectId treeId = commit().getTree(); DirCache cache = CacheUtils.forTree(treeId, repo); assertNotNull(CacheUtils.getEntry("/file1.txt", cache)); assertNotNull(CacheUtils.getEntry("/file2.txt", cache)); } }