Skip to content

Instantly share code, notes, and snippets.

@Raiden18
Last active July 12, 2022 10:49
Show Gist options
  • Save Raiden18/47d41e27c80ec2f8e8804d7ba5cef5e0 to your computer and use it in GitHub Desktop.
Save Raiden18/47d41e27c80ec2f8e8804d7ba5cef5e0 to your computer and use it in GitHub Desktop.
fun assertThat(someViewModel: SomeViewModel): ViewModelStateVerifier { // inspired by Hamcrest
return ViewModelStateVerifier(someViewModel)
}
class ViewModelStateVerifier(private val someViewModel: SomeViewModel) {
fun loaderIsShown(): ViewModelStateVerifier {
assertTrue(someViewModel.getLoaderState().value)
return this
}
fun loaderIsHidden(): ViewModelStateVerifier {
assertFalse(someViewModel.getLoaderState().value)
return this
}
fun errorIsShown(): ViewModelStateVerifier {
assertTrue(someViewModel.getErrorState().value)
return this
}
fun errorIsHidden(): ViewModelStateVerifier {
assertFalse(someViewModel.getErrorState().value)
return this
}
fun contentIsHidden(): ViewModelStateVerifier {
assertEquals(ContentState.Hidden, someViewModel.getContentState().value)
return this
}
fun contentIsShow(data: String): ViewModelStateVerifier {
assertEquals(ContentState.Shown(data), someViewModel.getContentState().value)
return this
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment