package com.beijunyi.parallelgit.filesystem.utils;
import java.io.IOException;
import com.beijunyi.parallelgit.AbstractParallelGitTest;
import com.beijunyi.parallelgit.filesystem.Gfs;
import com.beijunyi.parallelgit.filesystem.GitFileSystem;
import org.eclipse.jgit.lib.AnyObjectId;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class GfsConfigurationTest extends AbstractParallelGitTest {
@Before
public void setupRepository() throws IOException {
initFileRepository(false);
}
@Test
public void buildFromRepository() throws IOException {
GitFileSystem gfs = Gfs.newFileSystem(repo);
assertEquals(repo.getDirectory(), gfs.getRepository().getDirectory());
}
@Test
public void buildFromRepositoryDirectory() throws IOException {
GitFileSystem gfs = Gfs.newFileSystem(repo.getDirectory());
assertEquals(repo.getDirectory(), gfs.getRepository().getDirectory());
}
@Test
public void buildFromRepositoryDirectoryPath() throws IOException {
GitFileSystem gfs = Gfs.newFileSystem(repo.getDirectory().getAbsolutePath());
assertEquals(repo.getDirectory(), gfs.getRepository().getDirectory());
}
@Test
public void buildFromRepositoryWorkTree() throws IOException {
GitFileSystem gfs = Gfs.newFileSystem(repo.getWorkTree());
assertEquals(repo.getDirectory(), gfs.getRepository().getDirectory());
}
@Test
public void buildFromRepositoryWorkTreePath() throws IOException {
GitFileSystem gfs = Gfs.newFileSystem(repo.getWorkTree().getAbsolutePath());
assertEquals(repo.getDirectory(), gfs.getRepository().getDirectory());
}
@Test
public void buildWithBranch() throws IOException {
GitFileSystem gfs = Gfs.newFileSystem("test_branch", repo);
assertEquals("test_branch", gfs.getStatusProvider().branch());
}
@Test
public void buildWithRevision() throws IOException {
writeSomethingToCache();
AnyObjectId commit = commitToMaster();
GitFileSystem gfs = Gfs.newFileSystem(commit, repo);
assertEquals(commit, gfs.getStatusProvider().commit());
}
@Test
public void buildWithRevisionString() throws IOException {
writeSomethingToCache();
AnyObjectId commit = commitToMaster();
GitFileSystem gfs = Gfs.newFileSystem(commit.getName(), repo);
assertEquals(commit, gfs.getStatusProvider().commit());
}
}