public void plugHooksForSubscriber(DefaultVerifySubscriber<?> subscriber) { plugHooks(); Context userContext = subscriber.initialContext; subscriber.initialContext = Operators.enableOnDiscard(userContext, discardedElements::offer); }
public void plugHooks(StepVerifierOptions verifierOptions) { plugHooks(); Context userContext = verifierOptions.getInitialContext(); verifierOptions.withInitialContext(Operators.enableOnDiscard(userContext, discardedElements::offer)); }
@Test public void discardTryOnNextPredicateFail() { List<Object> discarded = new ArrayList<>(); CoreSubscriber<Integer> actual = new AssertSubscriber<>(Operators.enableOnDiscard(null, discarded::add)); FluxFilter.FilterSubscriber<Integer> subscriber = new FluxFilter.FilterSubscriber<>(actual, i -> { throw new IllegalStateException("boom"); }); subscriber.onSubscribe(Operators.emptySubscription()); subscriber.tryOnNext(1); assertThat(discarded).containsExactly(1); }
@Test public void discardConditionalTryOnNextPredicateFail() { List<Object> discarded = new ArrayList<>(); Fuseable.ConditionalSubscriber<Integer> actual = new FluxPeekFuseableTest.ConditionalAssertSubscriber<>( Operators.enableOnDiscard(null, discarded::add)); FluxFilter.FilterConditionalSubscriber<Integer> subscriber = new FluxFilter.FilterConditionalSubscriber<>(actual, i -> { throw new IllegalStateException("boom"); }); subscriber.onSubscribe(Operators.emptySubscription()); subscriber.tryOnNext(1); assertThat(discarded).containsExactly(1); }
@Test public void discardTryOnNextPredicateMiss() { List<Object> discarded = new ArrayList<>(); CoreSubscriber<Integer> actual = new AssertSubscriber<>(Operators.enableOnDiscard(null, discarded::add)); FluxFilter.FilterSubscriber<Integer> subscriber = new FluxFilter.FilterSubscriber<>(actual, i -> i % 2 == 0); subscriber.onSubscribe(Operators.emptySubscription()); subscriber.tryOnNext(1); subscriber.tryOnNext(2); assertThat(discarded).containsExactly(1); }
@Test public void discardOnError() { final List<Object> discarded = new ArrayList<>(); final AssertSubscriber<Object> testSubscriber = new AssertSubscriber<>( Operators.enableOnDiscard(Context.empty(), discarded::add)); MonoReduce.ReduceSubscriber<Integer> sub = new MonoReduce.ReduceSubscriber<>(testSubscriber, (current, next) -> current + next); sub.onSubscribe(Operators. emptySubscription()); sub.onNext(1); assertThat(sub.value).isEqualTo(1); sub.onError(new RuntimeException("boom")); testSubscriber.assertErrorMessage("boom"); assertThat(discarded).containsExactly(1); }
@Test public void discardOnError() { final List<Object> discarded = new ArrayList<>(); final AssertSubscriber<Object> testSubscriber = new AssertSubscriber<>( Operators.enableOnDiscard(Context.empty(), discarded::add)); MonoReduceSeed.ReduceSeedSubscriber<Integer, Integer> sub = new MonoReduceSeed.ReduceSeedSubscriber<>(testSubscriber, (current, next) -> current + next, 0); sub.onSubscribe(Operators. emptySubscription()); sub.onNext(1); assertThat(sub.value).isEqualTo(1); sub.onError(new RuntimeException("boom")); testSubscriber.assertErrorMessage("boom"); assertThat(discarded).containsExactly(1); }
@Test public void discardConditionalTryOnNextPredicateMiss() { List<Object> discarded = new ArrayList<>(); Fuseable.ConditionalSubscriber<Integer> actual = new FluxPeekFuseableTest.ConditionalAssertSubscriber<>( Operators.enableOnDiscard(null, discarded::add)); FluxFilter.FilterConditionalSubscriber<Integer> subscriber = new FluxFilter.FilterConditionalSubscriber<>(actual, i -> i % 2 == 0); subscriber.onSubscribe(Operators.emptySubscription()); subscriber.tryOnNext(1); subscriber.tryOnNext(2); assertThat(discarded).containsExactly(1); } }
@Test public void discardAccumulatedOnCancel() { final List<Object> discarded = new ArrayList<>(); final AssertSubscriber<Object> testSubscriber = new AssertSubscriber<>( Operators.enableOnDiscard(Context.empty(), discarded::add)); MonoReduceSeed.ReduceSeedSubscriber<Integer, Integer> sub = new MonoReduceSeed.ReduceSeedSubscriber<>(testSubscriber, (current, next) -> current + next, 0); sub.onSubscribe(Operators. emptySubscription()); sub.onNext(1); assertThat(sub.value).isEqualTo(1); sub.cancel(); testSubscriber.assertNoError(); assertThat(discarded).containsExactly(1); }
@Test public void discardAccumulatedOnCancel() { final List<Object> discarded = new ArrayList<>(); final AssertSubscriber<Object> testSubscriber = new AssertSubscriber<>( Operators.enableOnDiscard(Context.empty(), discarded::add)); MonoReduce.ReduceSubscriber<Integer> sub = new MonoReduce.ReduceSubscriber<>(testSubscriber, (current, next) -> current + next); sub.onSubscribe(Operators. emptySubscription()); sub.onNext(1); assertThat(sub.value).isEqualTo(1); sub.cancel(); testSubscriber.assertNoError(); assertThat(discarded).containsExactly(1); }
@Test public void discardOnNextAfterCancel() { final List<Object> discarded = new ArrayList<>(); final AssertSubscriber<Object> testSubscriber = new AssertSubscriber<>( Operators.enableOnDiscard(Context.empty(), discarded::add)); MonoReduceSeed.ReduceSeedSubscriber<Integer, Integer> sub = new MonoReduceSeed.ReduceSeedSubscriber<>(testSubscriber, (current, next) -> current + next, 0); sub.onSubscribe(Operators. emptySubscription()); sub.cancel(); //discards seed assertThat(sub.value).isNull(); sub.onNext(1); //discards passed value since cancelled testSubscriber.assertNoError(); assertThat(discarded).containsExactly(0, 1); assertThat(sub.value).isNull(); }
public void plugHooksForSubscriber(DefaultVerifySubscriber<?> subscriber) { plugHooks(); Context userContext = subscriber.initialContext; subscriber.initialContext = Operators.enableOnDiscard(userContext, discardedElements::offer); }
public void plugHooks(StepVerifierOptions verifierOptions) { plugHooks(); Context userContext = verifierOptions.getInitialContext(); verifierOptions.withInitialContext(Operators.enableOnDiscard(userContext, discardedElements::offer)); }