@@ -6,6 +6,8 @@ import com.hoc.flowmvi.domain.usecase.AddUserUseCase
6
6
import com.hoc.flowmvi.domain.usecase.GetUsersUseCase
7
7
import com.hoc.flowmvi.domain.usecase.RefreshGetUsersUseCase
8
8
import com.hoc.flowmvi.domain.usecase.RemoveUserUseCase
9
+ import com.hoc.flowmvi.domain.usecase.SearchUsersUseCase
10
+ import io.mockk.clearAllMocks
9
11
import io.mockk.coEvery
10
12
import io.mockk.coVerify
11
13
import io.mockk.every
@@ -18,6 +20,8 @@ import kotlinx.coroutines.flow.flowOf
18
20
import kotlinx.coroutines.test.TestCoroutineDispatcher
19
21
import kotlinx.coroutines.test.runBlockingTest
20
22
import java.io.IOException
23
+ import kotlin.test.AfterTest
24
+ import kotlin.test.BeforeTest
21
25
import kotlin.test.Test
22
26
import kotlin.test.assertEquals
23
27
import kotlin.test.assertFailsWith
@@ -55,6 +59,16 @@ class UseCaseTest {
55
59
private val refreshUseCase: RefreshGetUsersUseCase = RefreshGetUsersUseCase (userRepository)
56
60
private val removeUserUseCase: RemoveUserUseCase = RemoveUserUseCase (userRepository)
57
61
private val addUserUseCase: AddUserUseCase = AddUserUseCase (userRepository)
62
+ private val searchUsersUseCase: SearchUsersUseCase = SearchUsersUseCase (userRepository)
63
+
64
+ @BeforeTest
65
+ fun setup () {
66
+ }
67
+
68
+ @AfterTest
69
+ fun tearDown () {
70
+ clearAllMocks()
71
+ }
58
72
59
73
@Test
60
74
fun test_getUsersUseCase_whenSuccess_emitsUsers () = testDispatcher.runBlockingTest {
@@ -132,4 +146,25 @@ class UseCaseTest {
132
146
133
147
coVerify { userRepository.add(USERS [0 ]) }
134
148
}
149
+
150
+ @Test
151
+ fun test_searchUsersUseCase_whenSuccess_returnsUsers () = testDispatcher.runBlockingTest {
152
+ coEvery { userRepository.search(any()) } returns USERS
153
+
154
+ val query = " hoc081098"
155
+ val result = searchUsersUseCase(query)
156
+
157
+ coVerify { userRepository.search(query) }
158
+ assertEquals(USERS , result)
159
+ }
160
+
161
+ @Test
162
+ fun test_searchUsersUseCase_whenError_throwsError () = testDispatcher.runBlockingTest {
163
+ coEvery { userRepository.search(any()) } throws IOException ()
164
+
165
+ val query = " hoc081098"
166
+ assertFailsWith<IOException > { searchUsersUseCase(query) }
167
+
168
+ coVerify { userRepository.search(query) }
169
+ }
135
170
}
0 commit comments