package com.kickstarter.libs.rx.transformers; import org.junit.Test; import rx.Observable; import rx.observers.TestSubscriber; import rx.subjects.PublishSubject; public final class ErrorsTransformerTest { @Test public void testEmitsErrors() { final PublishSubject<Integer> source = PublishSubject.create(); final Observable<Throwable> result = source .materialize() .compose(Transformers.errors()); final TestSubscriber<Throwable> resultTest = new TestSubscriber<>(); result.subscribe(resultTest); source.onNext(1); resultTest.assertNoValues(); // Only emit when an error is thrown. source.onError(new Throwable()); resultTest.assertValueCount(1); } @Test public void testCompletedDoesNotEmitAnErrorNotification() { final PublishSubject<Integer> source = PublishSubject.create(); final Observable<Throwable> result = source .materialize() .compose(Transformers.errors()); final TestSubscriber<Throwable> resultTest = new TestSubscriber<>(); result.subscribe(resultTest); source.onCompleted(); resultTest.assertValueCount(0); } }