Skip to content

Instantly share code, notes, and snippets.

@steliosfran
Created July 31, 2021 23:04
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 steliosfran/09f3570de38a8eb9bb3ca054148d3d28 to your computer and use it in GitHub Desktop.
Save steliosfran/09f3570de38a8eb9bb3ca054148d3d28 to your computer and use it in GitHub Desktop.
@TestInstance(TestInstance.Lifecycle.PER_METHOD)
@DisplayName("Given we merge two streams")
class SafeMergeArrayTest {
@Nested
@DisplayName("When the first stream throws an error")
inner class FirstStreamError {
private val completable1 = Completable.error(
Throwable("error 1")
).subscribeOn(Schedulers.io())
@Nested
@DisplayName("When the second stream succeeds")
inner class SecondStreamSuccess {
private val completable2 = Completable.complete()
.subscribeOn(Schedulers.io())
@Test
fun `then the merged stream throws an error`() {
safeMergeArray(completable1, completable2).test().await().assertError {
it.message == "error 1"
}
}
}
@Nested
@DisplayName("When the second stream throws an error")
inner class SecondStreamError {
private val completable2 = Completable.error(
Throwable("error 2")
).subscribeOn(Schedulers.io())
@Test
fun `then the merged stream throws an error`() {
safeMergeArray(completable1, completable2).test().await().assertError {
it.message == "error 1"
}
}
}
}
@Nested
@DisplayName("When the first stream succeeds")
inner class FirstStreamSuccess {
private val completable1 = Completable.complete()
.subscribeOn(Schedulers.io())
@Nested
@DisplayName("When the second stream succeeds")
inner class SecondStreamSuccess {
private val completable2 = Completable.complete()
.subscribeOn(Schedulers.io())
@Test
fun `then the merged stream succeeds`() {
safeMergeArray(completable1, completable2).test().await().assertComplete()
}
}
@Nested
@DisplayName("When the second stream throws an error")
inner class SecondStreamError {
private val completable2 = Completable.error(
Throwable("error 2")
).subscribeOn(Schedulers.io())
@Test
fun `then the merged stream throws an error`() {
safeMergeArray(completable1, completable2).test().await().assertError {
it.message == "error 2"
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment