package com.beijunyi.parallelgit.utils; import java.io.IOException; import com.beijunyi.parallelgit.AbstractParallelGitTest; import com.beijunyi.parallelgit.utils.exceptions.NoSuchBranchException; import org.eclipse.jgit.lib.AnyObjectId; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.*; public class BranchUtilsDeleteBranchTest extends AbstractParallelGitTest { @Before public void setUpRepository() throws IOException { initMemoryRepository(false); } @Test public void deleteBranch_branchShouldNotExistAfterDeletion() throws IOException { writeSomethingToCache(); commitToBranch("test_branch"); BranchUtils.deleteBranch("test_branch", repo); assertNull(repo.findRef("test_branch")); } @Test public void deleteBranchWithBranchRefName_branchShouldNotExistAfterDeletion() throws IOException { writeSomethingToCache(); commitToBranch("test_branch"); BranchUtils.deleteBranch("refs/heads/test_branch", repo); assertNull(repo.findRef("test_branch")); } @Test public void deleteBranchWhenBranchIsTheRepositoryHead_branchShouldNotExistAfterDeletion() throws IOException { writeSomethingToCache(); commitToBranch("test_branch"); RepositoryUtils.setRepositoryHead(repo, "test_branch"); BranchUtils.deleteBranch("refs/heads/test_branch", repo); assertNull(repo.findRef("test_branch")); } @Test public void deleteBranchWhenBranchIsTheRepositoryHead_repositoryHeadShouldDetachToTheBranchHeadCommit() throws IOException { writeSomethingToCache(); AnyObjectId headCommit = commitToBranch("test_branch"); RepositoryUtils.setRepositoryHead(repo, "test_branch"); BranchUtils.deleteBranch("refs/heads/test_branch", repo); assertEquals(headCommit.name(), repo.getBranch()); } @Test(expected = NoSuchBranchException.class) public void deleteNonExistentBranch_shouldThrowNoSuchBranchException() throws IOException { BranchUtils.deleteBranch("non_existent_branch", repo); } @Test public void deleteOrphanBranch_orphanBranchShouldNotBeAffected() throws IOException { RepositoryUtils.setRepositoryHead(repo, "orphan_branch"); BranchUtils.deleteBranch("orphan_branch", repo); assertEquals("orphan_branch", repo.getBranch()); } }