Skip to content

Instantly share code, notes, and snippets.

@kozmi55
Last active June 4, 2020 17:17
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kozmi55/cd42a85dbc236667ad82a0797615d4d3 to your computer and use it in GitHub Desktop.
Save kozmi55/cd42a85dbc236667ad82a0797615d4d3 to your computer and use it in GitHub Desktop.
class GetUsersTest {
@Mock
lateinit var mockUserRepository: UserRepository
lateinit var getUsers: GetUsers
@Before
fun setup() {
MockitoAnnotations.initMocks(this)
getUsers = GetUsers(mockUserRepository)
}
@Test
fun testExecute_userListModelWithOneItem_emitListWithOneViewModel() {
val userListModel = UserListModel(listOf(User(1, "Name", 100, "Image url")))
setUpStubbing(userListModel)
val testObserver = getUsers.execute(1, false).test()
testObserver.assertNoErrors()
testObserver.assertValue { userViewModels: List<UserViewModel> -> userViewModels.size == 1 }
testObserver.assertValue { userViewModels: List<UserViewModel> ->
userViewModels.get(0) == UserViewModel(1, "Name", 100, "Image url") }
}
@Test
fun testExecute_userListModelEmpty_emitEmptyList() {
val userListModel = UserListModel(emptyList())
setUpStubbing(userListModel)
val testObserver = getUsers.execute(1, false).test()
testObserver.assertNoErrors()
testObserver.assertValue { userViewModels: List<UserViewModel> -> userViewModels.isEmpty() }
}
private fun setUpStubbing(userListModel: UserListModel) {
val fakeSingle = Single.create { e: SingleEmitter<UserListModel>? ->
e?.onSuccess(userListModel) }
whenever(mockUserRepository.getUsers(1, false))
.thenReturn(fakeSingle)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment