Skip to content

Instantly share code, notes, and snippets.

View vikasmain's full-sized avatar
🎯
Focusing

Vikas Bajpayee vikasmain

🎯
Focusing
View GitHub Profile
import com.app.coroutinesmvp.data.MovieListResponse
import retrofit2.http.GET
import retrofit2.http.Query
interface MovieApi {
@GET("/3/discover/movie")
suspend fun getMoviesList(@Query("api_key") apiKey: String): MovieListResponse
}
internal fun callMoviesApi() {
movieModel.callMoviesApi()
.onStart {
movieView.showLoadingView()
}
.catch {
movieView.showErrorView()
}
.onEach {
movieView.showMoviesList(it)
import com.app.coroutinesmvp.model.MovieModel
import com.app.coroutinesmvp.presenter.MoviePresenter
import com.nhaarman.mockitokotlin2.mock
import com.nhaarman.mockitokotlin2.verify
import com.nhaarman.mockitokotlin2.whenever
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.MainScope
import kotlinx.coroutines.flow.flow
import kotlinx.coroutines.plus
@DisplayName("when movie list api failed then show error view")
@Test
fun testApiFailed() {
moviePresenter.callMoviesApi()
verify(view).showLoadingView()
verify(view).showErrorView()
verify(view).hideLoadingView()
}
@DisplayName("test on click listener for movie item")
@Test
fun testOnclickListener() {
MovieStateFlow.onClickStateFlow.value = "Spider man"
moviePresenter.observeOnClickStateFlow()
verify(view).openSingleItemView("Spider man")
}