Added test for CheckoutRefUseCase
This commit is contained in:
parent
3abfe69d4f
commit
5fd29fbc39
@ -0,0 +1,55 @@
|
||||
package com.jetpackduba.gitnuro.git.branches
|
||||
|
||||
import com.jetpackduba.gitnuro.extensions.isBranch
|
||||
import com.jetpackduba.gitnuro.extensions.simpleName
|
||||
import io.mockk.*
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import org.eclipse.jgit.api.CheckoutCommand
|
||||
import org.eclipse.jgit.api.CreateBranchCommand
|
||||
import org.eclipse.jgit.api.Git
|
||||
import org.eclipse.jgit.lib.ObjectIdRef
|
||||
import org.junit.jupiter.api.BeforeEach
|
||||
import org.junit.jupiter.api.Test
|
||||
|
||||
class CheckoutRefUseCaseTest {
|
||||
private val gitMock: Git = mockk()
|
||||
private val refMock: ObjectIdRef.PeeledNonTag = mockk(relaxed = true)
|
||||
|
||||
@Test
|
||||
fun `invokes git checkout when ref is a local branch`() {
|
||||
val checkoutCommand = mockk<CheckoutCommand>(relaxed = true)
|
||||
val branchName ="refs/heads/feature-branch"
|
||||
every { refMock.name } returns branchName
|
||||
every { gitMock.checkout() } returns checkoutCommand
|
||||
|
||||
every { checkoutCommand.setName(any()) } returns checkoutCommand
|
||||
|
||||
runBlocking {
|
||||
CheckoutRefUseCase().invoke(gitMock, refMock)
|
||||
}
|
||||
|
||||
verify { checkoutCommand.setName(branchName) }
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `invokes git checkout when ref is a remote branch`() {
|
||||
val checkoutCommand = mockk<CheckoutCommand>(relaxed = true)
|
||||
val branchName = "refs/remotes/origin/feature-branch"
|
||||
every { refMock.name } returns branchName
|
||||
every { gitMock.checkout() } returns checkoutCommand
|
||||
|
||||
every { checkoutCommand.setCreateBranch(true) } returns checkoutCommand
|
||||
every { checkoutCommand.setStartPoint(any() as String) } returns checkoutCommand
|
||||
every { checkoutCommand.setUpstreamMode(CreateBranchCommand.SetupUpstreamMode.SET_UPSTREAM) } returns checkoutCommand
|
||||
|
||||
runBlocking {
|
||||
CheckoutRefUseCase().invoke(gitMock, refMock)
|
||||
}
|
||||
|
||||
verify {
|
||||
checkoutCommand.setCreateBranch(true)
|
||||
checkoutCommand.setStartPoint(branchName)
|
||||
checkoutCommand.setUpstreamMode(CreateBranchCommand.SetupUpstreamMode.SET_UPSTREAM)
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user