mirror of
https://github.com/imcarlost/Friendlists.git
synced 2026-04-09 18:38:36 -04:00
add test for favorite users
This commit is contained in:
@@ -3,6 +3,7 @@ package com.hako.userlist.feature
|
||||
import androidx.fragment.app.testing.launchFragmentInContainer
|
||||
import androidx.test.platform.app.InstrumentationRegistry
|
||||
import com.hako.base.domain.database.dao.UserDao
|
||||
import com.hako.base.domain.database.entities.UserEntity
|
||||
import com.hako.testing.isTextDisplayed
|
||||
import com.hako.userlist.domain.datasource.UserlistRemoteApi
|
||||
import com.hako.userlist.domain.usecase.GetFavoriteUsers
|
||||
@@ -11,11 +12,13 @@ import com.hako.userlist.domain.usecase.SetFavoriteStatus
|
||||
import com.hako.userlist.model.User
|
||||
import com.hako.userlist.model.toUserEntity
|
||||
import com.hako.userlist.viewmodel.UserlistViewmodel
|
||||
import org.junit.After
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.koin.androidx.viewmodel.dsl.viewModel
|
||||
import org.koin.core.context.loadKoinModules
|
||||
import org.koin.core.context.startKoin
|
||||
import org.koin.core.context.stopKoin
|
||||
import org.koin.dsl.module
|
||||
|
||||
class UserlistFragmentTest {
|
||||
@@ -33,15 +36,29 @@ class UserlistFragmentTest {
|
||||
}
|
||||
}
|
||||
|
||||
@After
|
||||
fun killKoin() {
|
||||
stopKoin()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun shouldShowUserlist_withAllUsers() {
|
||||
userlist {
|
||||
initialState()
|
||||
withTwoBasicUsers()
|
||||
} should {
|
||||
showTwoBasicUsers()
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun shouldShowOnlyFavoriteUserlist_withAllUsers() {
|
||||
userlist {
|
||||
withTwoBasicOneFavoriteUsers()
|
||||
} should {
|
||||
showOnlyOneFavorite()
|
||||
}
|
||||
}
|
||||
|
||||
private fun userlist(func: UserlistRobot.() -> Unit) =
|
||||
UserlistRobot().apply {
|
||||
func()
|
||||
@@ -50,7 +67,7 @@ class UserlistFragmentTest {
|
||||
|
||||
class UserlistRobot {
|
||||
|
||||
fun initialState() {
|
||||
fun withTwoBasicUsers() {
|
||||
loadKoinModules(
|
||||
module {
|
||||
factory<UserDao> { MockUserDao(loadTwoBasicUsers().map { it.toUserEntity() }) }
|
||||
@@ -60,6 +77,16 @@ class UserlistRobot {
|
||||
launchFragmentInContainer<UserlistFragment>()
|
||||
}
|
||||
|
||||
fun withTwoBasicOneFavoriteUsers() {
|
||||
loadKoinModules(
|
||||
module {
|
||||
factory<UserDao> { MockUserDao(loadTwoUsersOneFavorite()) }
|
||||
factory<UserlistRemoteApi> { MockUserApi(loadTwoBasicUsers()) }
|
||||
}
|
||||
)
|
||||
launchFragmentInContainer<FavoriteUserlistFragment>()
|
||||
}
|
||||
|
||||
infix fun should(func: UserlistResult.() -> Unit) {
|
||||
UserlistResult().apply { func() }
|
||||
}
|
||||
@@ -82,6 +109,26 @@ class UserlistRobot {
|
||||
"www.test2.com"
|
||||
)
|
||||
)
|
||||
|
||||
private fun loadTwoUsersOneFavorite() = listOf(
|
||||
UserEntity(
|
||||
1,
|
||||
"Marian Arriaga",
|
||||
"mariancita",
|
||||
"test@gmail.com",
|
||||
"+56873912",
|
||||
"www.test.com",
|
||||
true
|
||||
),
|
||||
UserEntity(
|
||||
2,
|
||||
"Carlos Martinez",
|
||||
"carlitos",
|
||||
"test2@gmail.com",
|
||||
"+56873912",
|
||||
"www.test2.com"
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
class UserlistResult {
|
||||
@@ -91,4 +138,9 @@ class UserlistResult {
|
||||
"Carlos Martinez".isTextDisplayed()
|
||||
"carlitos".isTextDisplayed()
|
||||
}
|
||||
|
||||
fun showOnlyOneFavorite() {
|
||||
"Marian Arriaga".isTextDisplayed()
|
||||
"mariancita".isTextDisplayed()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user