package com.kickstarter.libs.rx.transformers; import org.junit.Test; import rx.Observable; import rx.observers.TestSubscriber; import rx.subjects.PublishSubject; public final class ValuesTransformerTest { @Test public void testEmitsOnNext() { final PublishSubject<Integer> source = PublishSubject.create(); final Observable<Integer> result = source .materialize() .compose(Transformers.values()); final TestSubscriber<Integer> resultTest = new TestSubscriber<>(); result.subscribe(resultTest); // onNext should emit values. source.onNext(1); resultTest.assertValues(1); source.onNext(2); resultTest.assertValues(1, 2); // Completing the source stream should not emit values. source.onCompleted(); resultTest.assertValues(1, 2); } @Test public void testErrorsDoNotEmit() { final PublishSubject<Integer> source = PublishSubject.create(); final Observable<Integer> result = source .materialize() .compose(Transformers.values()); final TestSubscriber<Integer> resultTest = new TestSubscriber<>(); result.subscribe(resultTest); // source.onNext(1); resultTest.assertValues(1); // An error in the source stream should not emit values. source.onError(new Throwable()); resultTest.assertValues(1); } }