use of io.reactivex.internal.operators.flowable.FlowableObserveOn.BaseObserveOnSubscriber in project RxJava by ReactiveX.
the class FlowableObserveOnTest method asycFusedPollThrows.
@Test
public void asycFusedPollThrows() {
new Flowable<Integer>() {
@Override
protected void subscribeActual(Subscriber<? super Integer> observer) {
observer.onSubscribe(new BooleanSubscription());
@SuppressWarnings("unchecked") BaseObserveOnSubscriber<Integer> oo = (BaseObserveOnSubscriber<Integer>) observer;
oo.sourceMode = QueueFuseable.ASYNC;
oo.requested.lazySet(1);
oo.queue = new SimpleQueue<Integer>() {
@Override
public boolean offer(Integer value) {
return false;
}
@Override
public boolean offer(Integer v1, Integer v2) {
return false;
}
@Nullable
@Override
public Integer poll() throws Exception {
throw new TestException();
}
@Override
public boolean isEmpty() {
return false;
}
@Override
public void clear() {
}
};
oo.clear();
oo.trySchedule();
}
}.observeOn(Schedulers.single()).test(0L).awaitDone(5, TimeUnit.SECONDS).assertFailure(TestException.class);
}
use of io.reactivex.internal.operators.flowable.FlowableObserveOn.BaseObserveOnSubscriber in project RxJava by ReactiveX.
the class FlowableObserveOnTest method nonFusedPollThrows.
@Test
public void nonFusedPollThrows() {
new Flowable<Integer>() {
@Override
protected void subscribeActual(Subscriber<? super Integer> observer) {
observer.onSubscribe(new BooleanSubscription());
@SuppressWarnings("unchecked") BaseObserveOnSubscriber<Integer> oo = (BaseObserveOnSubscriber<Integer>) observer;
oo.sourceMode = QueueFuseable.SYNC;
oo.requested.lazySet(1);
oo.queue = new SimpleQueue<Integer>() {
@Override
public boolean offer(Integer value) {
return false;
}
@Override
public boolean offer(Integer v1, Integer v2) {
return false;
}
@Nullable
@Override
public Integer poll() throws Exception {
throw new TestException();
}
@Override
public boolean isEmpty() {
return false;
}
@Override
public void clear() {
}
};
oo.clear();
oo.trySchedule();
}
}.observeOn(Schedulers.single()).test(0L).awaitDone(5, TimeUnit.SECONDS).assertFailure(TestException.class);
}
Aggregations