Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 65a05f1

Browse files
refactor: rename getUsers to observeUsers for clarity and consistency
1 parent e32fcb5 commit 65a05f1

File tree

11 files changed

+34
-33
lines changed

11 files changed

+34
-33
lines changed

‎.idea/kotlinc.xml‎

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎core/src/main/java/com/hoc/flowmvi/core/selfReference.kt‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ import kotlin.reflect.KProperty
1111
value class SelfReference<T>(
1212
val value: T,
1313
) : ReadOnlyProperty<Any?, T> {
14-
override fun getValue(
14+
@Suppress("OVERRIDE_BY_INLINE", "NOTHING_TO_INLINE")
15+
override inline fun getValue(
1516
thisRef: Any?,
1617
property: KProperty<*>,
1718
): T = value

‎data/src/main/java/com/hoc/flowmvi/data/UserRepositoryImpl.kt‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ internal class UserRepositoryImpl(
8080
.first()
8181

8282
@OptIn(FlowExtPreview::class)
83-
override fun getUsers() =
83+
override fun observeUsers() =
8484
changesFlow
8585
.onEach { Timber.d("[USER_REPO] Change=$it") }
8686
.scanWith(::getUsersFromRemoteWithRetry) { acc, change ->

‎data/src/test/java/com/hoc/flowmvi/data/UserRepositoryImplRealAPITest.kt‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,12 +56,12 @@ class UserRepositoryImplRealAPITest : KoinTest {
5656
private val userRepo by inject<UserRepository>()
5757

5858
@Test
59-
fun getUsers() =
59+
fun observeUsers() =
6060
runBlocking {
6161
kotlin.runCatching {
6262
val result =
6363
userRepo
64-
.getUsers()
64+
.observeUsers()
6565
.first()
6666
assertTrue(result.isRight())
6767
assertTrue(result.rightValueOrThrow.isNotEmpty())

‎data/src/test/java/com/hoc/flowmvi/data/UserRepositoryImplTest.kt‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -285,15 +285,15 @@ class UserRepositoryImplTest {
285285
}
286286

287287
@Test
288-
fun test_getUsers_withApiCallSuccess_emitsInitial() =
288+
fun test_observeUsers_withApiCallSuccess_emitsInitial() =
289289
runTest {
290290
coEvery { userApiService.getUsers() } returns USER_RESPONSES
291291
every { responseToDomain(any()) } returnsMany VALID_NES_USERS
292292

293293
val events = mutableListOf<Either<UserError, List<User>>>()
294294
val job =
295295
launch(start = CoroutineStart.UNDISPATCHED) {
296-
repo.getUsers().toList(events)
296+
repo.observeUsers().toList(events)
297297
}
298298
delay(5_000)
299299
job.cancel()
@@ -313,15 +313,15 @@ class UserRepositoryImplTest {
313313
}
314314

315315
@Test
316-
fun test_getUsers_withApiCallError_rethrows() =
316+
fun test_observeUsers_withApiCallError_rethrows() =
317317
runTest {
318318
coEvery { userApiService.getUsers() } throws IOException()
319319
every { errorMapper(ofType<IOException>()) } returns UserError.NetworkError
320320

321321
val events = mutableListOf<Either<UserError, List<User>>>()
322322
val job =
323323
launch(start = CoroutineStart.UNDISPATCHED) {
324-
repo.getUsers().toList(events)
324+
repo.observeUsers().toList(events)
325325
}
326326
delay(20_000)
327327
job.cancel()
@@ -337,7 +337,7 @@ class UserRepositoryImplTest {
337337
}
338338

339339
@Test
340-
fun test_getUsers_withApiCallSuccess_emitsInitialAndUpdatedUsers() =
340+
fun test_observeUsers_withApiCallSuccess_emitsInitialAndUpdatedUsers() =
341341
runTest {
342342
val user = USERS.last()
343343
val userResponse = USER_RESPONSES.last()
@@ -352,7 +352,7 @@ class UserRepositoryImplTest {
352352
val events = mutableListOf<Either<UserError, List<User>>>()
353353
val job =
354354
launch(start = CoroutineStart.UNDISPATCHED) {
355-
repo.getUsers().toList(events)
355+
repo.observeUsers().toList(events)
356356
}
357357
repo.add(user)
358358
repo.remove(user)

‎domain/src/main/java/com/hoc/flowmvi/domain/DomainModule.kt‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.hoc.flowmvi.domain
22

33
import com.hoc.flowmvi.domain.usecase.AddUserUseCase
4-
import com.hoc.flowmvi.domain.usecase.GetUsersUseCase
4+
import com.hoc.flowmvi.domain.usecase.ObserveUsersUseCase
55
import com.hoc.flowmvi.domain.usecase.RefreshGetUsersUseCase
66
import com.hoc.flowmvi.domain.usecase.RemoveUserUseCase
77
import com.hoc.flowmvi.domain.usecase.SearchUsersUseCase
@@ -11,7 +11,7 @@ import org.koin.dsl.module
1111
@JvmField
1212
val domainModule =
1313
module {
14-
factoryOf(::GetUsersUseCase)
14+
factoryOf(::ObserveUsersUseCase)
1515

1616
factoryOf(::RefreshGetUsersUseCase)
1717

‎domain/src/main/java/com/hoc/flowmvi/domain/repository/UserRepository.kt‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import com.hoc.flowmvi.domain.model.UserError
66
import kotlinx.coroutines.flow.Flow
77

88
interface UserRepository {
9-
fun getUsers(): Flow<Either<UserError, List<User>>>
9+
fun observeUsers(): Flow<Either<UserError, List<User>>>
1010

1111
suspend fun refresh(): Either<UserError, Unit>
1212

‎domain/src/main/java/com/hoc/flowmvi/domain/usecase/GetUsersUseCase.kt‎ renamed to ‎domain/src/main/java/com/hoc/flowmvi/domain/usecase/ObserveUsersUseCase.kt‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import com.hoc.flowmvi.domain.model.UserError
66
import com.hoc.flowmvi.domain.repository.UserRepository
77
import kotlinx.coroutines.flow.Flow
88

9-
class GetUsersUseCase(
9+
class ObserveUsersUseCase(
1010
private val userRepository: UserRepository,
1111
) {
12-
operator fun invoke(): Flow<Either<UserError, List<User>>> = userRepository.getUsers()
12+
operator fun invoke(): Flow<Either<UserError, List<User>>> = userRepository.observeUsers()
1313
}

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

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import com.hoc.flowmvi.domain.model.User
66
import com.hoc.flowmvi.domain.model.UserError
77
import com.hoc.flowmvi.domain.repository.UserRepository
88
import com.hoc.flowmvi.domain.usecase.AddUserUseCase
9-
import com.hoc.flowmvi.domain.usecase.GetUsersUseCase
9+
import com.hoc.flowmvi.domain.usecase.ObserveUsersUseCase
1010
import com.hoc.flowmvi.domain.usecase.RefreshGetUsersUseCase
1111
import com.hoc.flowmvi.domain.usecase.RemoveUserUseCase
1212
import com.hoc.flowmvi.domain.usecase.SearchUsersUseCase
@@ -60,7 +60,7 @@ class UseCaseTest {
6060
val coroutineRule = TestCoroutineDispatcherRule()
6161

6262
private lateinit var userRepository: UserRepository
63-
private lateinit var getUsersUseCase:GetUsersUseCase
63+
private lateinit var observeUsersUseCase:ObserveUsersUseCase
6464
private lateinit var refreshUseCase: RefreshGetUsersUseCase
6565
private lateinit var removeUserUseCase: RemoveUserUseCase
6666
private lateinit var addUserUseCase: AddUserUseCase
@@ -72,7 +72,7 @@ class UseCaseTest {
7272
fun setup() {
7373
userRepository = mockk()
7474

75-
getUsersUseCase = GetUsersUseCase(userRepository)
75+
observeUsersUseCase = ObserveUsersUseCase(userRepository)
7676
refreshUseCase = RefreshGetUsersUseCase(userRepository)
7777
removeUserUseCase = RemoveUserUseCase(userRepository)
7878
addUserUseCase = AddUserUseCase(userRepository)
@@ -86,25 +86,25 @@ class UseCaseTest {
8686
}
8787

8888
@Test
89-
fun test_getUsersUseCase_whenSuccess_emitsUsers() =
89+
fun test_observeUsersUseCase_whenSuccess_emitsUsers() =
9090
runTest {
9191
val usersRight = USERS.right()
92-
every { userRepository.getUsers() } returns flowOf(usersRight)
92+
every { userRepository.observeUsers() } returns flowOf(usersRight)
9393

94-
val result = getUsersUseCase()
94+
val result = observeUsersUseCase()
9595

96-
verify { userRepository.getUsers() }
96+
verify { userRepository.observeUsers() }
9797
assertEquals(usersRight, result.first())
9898
}
9999

100100
@Test
101-
fun test_getUsersUseCase_whenError_throwsError() =
101+
fun test_observeUsersUseCase_whenError_throwsError() =
102102
runTest {
103-
every { userRepository.getUsers() } returns flowOf(errorLeft)
103+
every { userRepository.observeUsers() } returns flowOf(errorLeft)
104104

105-
val result = getUsersUseCase()
105+
val result = observeUsersUseCase()
106106

107-
verify { userRepository.getUsers() }
107+
verify { userRepository.observeUsers() }
108108
assertEquals(errorLeft, result.first())
109109
}
110110

‎feature-main/src/main/java/com/hoc/flowmvi/ui/main/MainVM.kt‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package com.hoc.flowmvi.ui.main
33
import androidx.lifecycle.viewModelScope
44
import arrow.core.flatMap
55
import com.hoc.flowmvi.core.selfReferenced
6-
import com.hoc.flowmvi.domain.usecase.GetUsersUseCase
6+
import com.hoc.flowmvi.domain.usecase.ObserveUsersUseCase
77
import com.hoc.flowmvi.domain.usecase.RefreshGetUsersUseCase
88
import com.hoc.flowmvi.domain.usecase.RemoveUserUseCase
99
import com.hoc.flowmvi.mvi_base.AbstractMviViewModel
@@ -33,7 +33,7 @@ import timber.log.Timber
3333
@FlowPreview
3434
@ExperimentalCoroutinesApi
3535
class MainVM(
36-
private val getUsersUseCase:GetUsersUseCase,
36+
private val observeUsersUseCase:ObserveUsersUseCase,
3737
private val refreshGetUsers: RefreshGetUsersUseCase,
3838
private val removeUser: RemoveUserUseCase,
3939
) : AbstractMviViewModel<ViewIntent, ViewState, SingleEvent>() {
@@ -78,7 +78,7 @@ class MainVM(
7878
//region Processors
7979
private fun Flow<ViewIntent>.toUserChangeFlow(): Flow<PartialStateChange.Users> {
8080
val userChanges =
81-
defer(getUsersUseCase::invoke)
81+
defer { observeUsersUseCase() }
8282
.onEach { either -> Timber.tag(logTag).d("Emit users.size=${either.map { it.size }}") }
8383
.map { result ->
8484
result.fold(

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /