package com.beijunyi.parallelgit.filesystem;
import com.beijunyi.parallelgit.filesystem.exceptions.NoBranchException;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
public class GfsStatusProviderBranchTest extends PreSetupGitFileSystemTest {
private GfsStatusProvider statusProvider;
@Before
public void setUp() {
statusProvider = gfs.getStatusProvider();
}
@Test
public void setBranch_theFileSystemShouldBecomeAttached() {
try(GfsStatusProvider.Update update = statusProvider.prepareUpdate()) {
update.detach();
update.branch("test_branch");
}
assertTrue(statusProvider.isAttached());
}
@Test
public void setBranch_theBranchOfTheFileSystemShouldBecomeTheSpecifiedBranch() {
try(GfsStatusProvider.Update update = statusProvider.prepareUpdate()) {
update.branch("test_branch");
}
assertEquals("test_branch", statusProvider.branch());
}
@Test
public void setBranchUsingFullBranchRef_theBranchOfTheFileSystemShouldBecomeTheSpecifiedBranch() {
try(GfsStatusProvider.Update update = statusProvider.prepareUpdate()) {
update.branch("refs/heads/test_branch");
}
assertEquals("test_branch", statusProvider.branch());
}
@Test
public void detach_theFileSystemShouldBecomeDetached() {
try(GfsStatusProvider.Update update = statusProvider.prepareUpdate()) {
update.detach();
}
assertFalse(statusProvider.isAttached());
}
@Test(expected = NoBranchException.class)
public void detachAndGetBranch_shouldThrowNoBranchException() {
try(GfsStatusProvider.Update update = statusProvider.prepareUpdate()) {
update.detach();
statusProvider.branch();
}
}
}