@Override public void onCompleted() { onCompleted(innerScheduler.now()); }
@SuppressWarnings("unchecked") @Test public void singleLeftTerminalRight() { Observable<Either<EventA, EventB>> either = RxEither.from(eventASubject, eventBSubject); either.subscribe(subscriber); eventASubject.onNext(eventA); eventBSubject.onNext(eventB); eventBSubject.onCompleted(); eventASubject.onNext(eventA); testScheduler.triggerActions(); subscriber.assertNoErrors(); subscriber.assertCompleted(); subscriber.assertUnsubscribed(); subscriber.assertValues(Either.<EventA, EventB>left(eventA), Either.<EventA, EventB>right(eventB)); }
@SuppressWarnings("unchecked") @Test public void multipleLeftTerminalRightOtherThread() { TestScheduler otherScheduler = Schedulers.test(); TestSubject<EventB> eventBSubject = TestSubject.create(otherScheduler); Observable<Either<EventA, EventB>> either = RxEither.from(eventASubject, eventBSubject); either.subscribe(subscriber); eventASubject.onNext(eventA); eventBSubject.onNext(eventB); eventBSubject.onCompleted(); eventASubject.onNext(eventA); testScheduler.triggerActions(); subscriber.assertNotCompleted(); otherScheduler.triggerActions(); subscriber.assertNoErrors(); subscriber.assertCompleted(); subscriber.assertUnsubscribed(); subscriber.assertValues(Either.<EventA, EventB>left(eventA), Either.<EventA, EventB>left(eventA), Either.<EventA, EventB>right(eventB)); }