package com.beijunyi.parallelgit.filesystem; import java.io.IOException; import java.net.URI; import java.util.Collections; import com.beijunyi.parallelgit.filesystem.utils.GfsUriBuilder; import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.revwalk.RevCommit; import org.junit.Test; import static com.beijunyi.parallelgit.filesystem.GitFileSystemProvider.*; import static java.util.Collections.singletonMap; import static org.junit.Assert.*; public class GitFileSystemProviderNewFileSystemTest extends AbstractGitFileSystemTest { @Test public void openNonBareRepositoryFromUri() throws IOException { initFileRepository(false); URI uri = GfsUriBuilder.prepare() .repository(repoDir) .build(); try(GitFileSystem gfs = provider.newFileSystem(uri, Collections.<String, Object>emptyMap())) { Repository repo = gfs.getRepository(); assertFalse(repo.isBare()); assertEquals(repoDir, gfs.getRepository().getWorkTree()); } } @Test public void openBareRepositoryFromUri() throws IOException { initFileRepository(true); URI uri = GfsUriBuilder.prepare() .repository(repoDir) .build(); try(GitFileSystem gfs = provider.newFileSystem(uri, Collections.<String, Object>emptyMap())) { Repository repo = gfs.getRepository(); assertTrue(repo.isBare()); assertEquals(repoDir, repo.getDirectory()); } } @Test public void openWithBranch() throws IOException { initFileRepository(true); writeToCache("some_file"); RevCommit commit = commitToBranch("test_branch"); URI uri = GfsUriBuilder.prepare() .repository(repoDir) .build(); try(GitFileSystem gfs = provider.newFileSystem(uri, singletonMap(BRANCH, "test_branch"))) { assertEquals("test_branch", gfs.getStatusProvider().branch()); RevCommit baseCommit = gfs.getStatusProvider().commit(); assertNotNull(baseCommit); assertEquals(commit, baseCommit); } } @Test public void openWithRevision() throws IOException { initFileRepository(true); writeToCache("some_file"); RevCommit commit = commitToMaster(); URI uri = GfsUriBuilder.prepare() .repository(repoDir) .build(); try(GitFileSystem gfs = provider.newFileSystem(uri, singletonMap(COMMIT, commit.name()))) { RevCommit baseCommit = gfs.getStatusProvider().commit(); assertNotNull(baseCommit); assertEquals(commit, baseCommit); } } }