Skip to content

Commit 63c3c62

Browse files
committed
test(domain)
1 parent 9033c31 commit 63c3c62

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

domain/src/test/java/com/hoc/flowmvi/domain/UseCaseTest.kt

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@ package com.hoc.flowmvi.domain
33
import com.hoc.flowmvi.domain.entity.User
44
import com.hoc.flowmvi.domain.repository.UserRepository
55
import com.hoc.flowmvi.domain.usecase.GetUsersUseCase
6+
import com.hoc.flowmvi.domain.usecase.RefreshGetUsersUseCase
7+
import com.hoc.flowmvi.domain.usecase.RemoveUserUseCase
8+
import io.mockk.coEvery
9+
import io.mockk.coVerify
610
import io.mockk.every
711
import io.mockk.mockk
812
import io.mockk.verify
@@ -12,6 +16,7 @@ import kotlinx.coroutines.flow.flow
1216
import kotlinx.coroutines.flow.flowOf
1317
import kotlinx.coroutines.test.TestCoroutineDispatcher
1418
import kotlinx.coroutines.test.runBlockingTest
19+
import java.io.IOException
1520
import kotlin.test.Test
1621
import kotlin.test.assertEquals
1722
import kotlin.test.assertFailsWith
@@ -46,6 +51,8 @@ class UseCaseTest {
4651

4752
private val userRepository: UserRepository = mockk(relaxed = true)
4853
private val getUsersUseCase: GetUsersUseCase = GetUsersUseCase(userRepository)
54+
private val refreshUseCase: RefreshGetUsersUseCase = RefreshGetUsersUseCase(userRepository)
55+
private val removeUserUseCase: RemoveUserUseCase = RemoveUserUseCase(userRepository)
4956

5057
@Test
5158
fun test_getUsersUseCase_whenSuccess_emitsUsers() = testDispatcher.runBlockingTest {
@@ -66,4 +73,42 @@ class UseCaseTest {
6673
verify { userRepository.getUsers() }
6774
assertFailsWith<Exception> { result.first() }
6875
}
76+
77+
@Test
78+
fun test_refreshUseCase_whenSuccess_returnsUnit() = testDispatcher.runBlockingTest {
79+
coEvery { userRepository.refresh() } returns Unit
80+
81+
val result = refreshUseCase()
82+
83+
coVerify { userRepository.refresh() }
84+
assertEquals(Unit, result)
85+
}
86+
87+
@Test
88+
fun test_refreshUseCase_whenError_throwsError() = testDispatcher.runBlockingTest {
89+
coEvery { userRepository.refresh() } throws IOException()
90+
91+
assertFailsWith<IOException> { refreshUseCase() }
92+
93+
coVerify { userRepository.refresh() }
94+
}
95+
96+
@Test
97+
fun test_removeUserUseCase_whenSuccess_returnsUnit() = testDispatcher.runBlockingTest {
98+
coEvery { userRepository.remove(any()) } returns Unit
99+
100+
val result = removeUserUseCase(USERS[0])
101+
102+
coVerify { userRepository.remove(USERS[0]) }
103+
assertEquals(Unit, result)
104+
}
105+
106+
@Test
107+
fun test_removeUserUseCase_whenError_throwsError() = testDispatcher.runBlockingTest {
108+
coEvery { userRepository.remove(any()) } throws IOException()
109+
110+
assertFailsWith<IOException> { removeUserUseCase(USERS[0]) }
111+
112+
coVerify { userRepository.remove(USERS[0]) }
113+
}
69114
}

0 commit comments

Comments
 (0)