@Test public void shouldPropagateIncomingErrorsAsUnrecoverable() throws Exception { PublishSubject<Integer> input = PublishSubject.create(); AssertableSubscriber<String> subscriber = input.compose(loop).test(); Exception expected = new RuntimeException("expected"); input.onError(expected); subscriber.awaitTerminalEvent(1, TimeUnit.SECONDS); subscriber.assertError(new UnrecoverableIncomingException(expected)); } }