Skip to content

Instantly share code, notes, and snippets.

@rozkminiacz
Last active March 3, 2020 10:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rozkminiacz/9fb62401dcb3252099e4ee1747e21698 to your computer and use it in GitHub Desktop.
Save rozkminiacz/9fb62401dcb3252099e4ee1747e21698 to your computer and use it in GitHub Desktop.
@Test
fun `ON start fetching data IT SHOULD show progress indicator`() {
val view: MainScreenContract.View = mockk(relaxed = true)
val fetchCurrencyUseCase: FetchCurrencyUseCase = mockk {
every { execute() } returns Single.never()
}
val presenter = MainScreenPresenter(
fetchCurrencyUseCase = fetchCurrencyUseCase,
schedulerProvider = TrampolineTestSchedulers()
)
presenter.attach(view)
verify {
view.toggleLoadingIndicator(true)
}
}
@Test
fun `ON fetching data complete IT SHOULD hide progress indicator`() {
val view: MainScreenContract.View = mockk(relaxed = true)
val fetchCurrencyUseCase: FetchCurrencyUseCase = mockk {
every { execute() } returns Single.just(fakeCurrencyList)
}
val presenter = MainScreenPresenter(
fetchCurrencyUseCase = fetchCurrencyUseCase,
schedulerProvider = TrampolineTestSchedulers()
)
presenter.attach(view)
verify {
view.toggleLoadingIndicator(false)
}
}
@Test
fun `ON fetching data error IT SHOULD hide progress indicator`() {
val view: MainScreenContract.View = mockk(relaxed = true)
val fetchCurrencyUseCase: FetchCurrencyUseCase = mockk {
every { execute() } returns Single.error(Throwable("error occurred"))
}
val presenter = MainScreenPresenter(
fetchCurrencyUseCase = fetchCurrencyUseCase,
schedulerProvider = TrampolineTestSchedulers()
)
presenter.attach(view)
verify {
view.toggleLoadingIndicator(false)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment