diff --git a/src/main/java/io/reactivex/subscribers/TestSubscriber.java b/src/main/java/io/reactivex/subscribers/TestSubscriber.java index 676d0a49f8..5b3912e07a 100644 --- a/src/main/java/io/reactivex/subscribers/TestSubscriber.java +++ b/src/main/java/io/reactivex/subscribers/TestSubscriber.java @@ -16,11 +16,12 @@ import org.reactivestreams.*; +import io.reactivex.annotations.Experimental; import io.reactivex.disposables.Disposable; import io.reactivex.functions.Consumer; import io.reactivex.internal.fuseable.QueueSubscription; import io.reactivex.internal.subscriptions.SubscriptionHelper; -import io.reactivex.internal.util.*; +import io.reactivex.internal.util.ExceptionHelper; import io.reactivex.observers.BaseTestConsumer; /** @@ -403,6 +404,18 @@ public final TestSubscriber assertOf(Consumer> chec return this; } + /** + * Calls {@link #request(long)} and returns this. + * @param n the request amount + * @return this + * @since 2.0.1 - experimental + */ + @Experimental + public final TestSubscriber requestMore(long n) { + request(n); + return this; + } + /** * A subscriber that ignores all events and does not report errors. */ diff --git a/src/test/java/io/reactivex/subscribers/TestSubscriberTest.java b/src/test/java/io/reactivex/subscribers/TestSubscriberTest.java index e1adbacba9..41021586a9 100644 --- a/src/test/java/io/reactivex/subscribers/TestSubscriberTest.java +++ b/src/test/java/io/reactivex/subscribers/TestSubscriberTest.java @@ -1707,4 +1707,16 @@ public void assertValueAtInvalidIndex() { } }); } + + @Test + public void requestMore() { + Flowable.range(1, 5) + .test(0) + .requestMore(1) + .assertValue(1) + .requestMore(2) + .assertValues(1, 2, 3) + .requestMore(3) + .assertResult(1, 2, 3, 4, 5); + } }