Class TestSubscriber<T>

  • All Implemented Interfaces:
    Observer<T>, Subscription


    public class TestSubscriber<T>
    extends Subscriber<T>
    A TestSubscriber is a variety of Subscriber that you can use for unit testing, to perform assertions, inspect received events, or wrap a mocked Subscriber.
    • Constructor Detail

      • TestSubscriber

        public TestSubscriber(Subscriber<T> delegate)
      • TestSubscriber

        public TestSubscriber(Observer<T> delegate)
      • TestSubscriber

        public TestSubscriber()
    • Method Detail

      • onCompleted

        public void onCompleted()
        Notifies the Subscriber that the Observable has finished sending push-based notifications.

        The Observable will not call this method if it calls onError(java.lang.Throwable).

      • onError

        public void onError(Throwable e)
        Notifies the Subscriber that the Observable has experienced an error condition.

        If the Observable calls this method, it will not thereafter call onNext(T) or onCompleted().

        Parameters:
        e - the exception encountered by the Observable
      • onNext

        public void onNext(T t)
        Provides the Subscriber with a new item to observe.

        The Observable may call this method 0 or more times.

        The Observable will not call this method again after it calls either onCompleted() or onError(java.lang.Throwable).

        Parameters:
        t - the item emitted by the Observable
      • requestMore

        public void requestMore(long n)
        Allow calling the protected Subscriber.request(long) from unit tests.
        Parameters:
        n - the maximum number of items you want the Observable to emit to the Subscriber at this time, or Long.MAX_VALUE if you want the Observable to emit items at its own pace
      • getOnNextEvents

        public List<T> getOnNextEvents()
        Get the sequence of items observed by this Subscriber, as an ordered List.
        Returns:
        a list of items observed by this Subscriber, in the order in which they were observed
      • assertReceivedOnNext

        public void assertReceivedOnNext(List<T> items)
        Assert that a particular sequence of items was received by this Subscriber in order.
        Parameters:
        items - the sequence of items expected to have been observed
        Throws:
        AssertionError - if the sequence of items observed does not exactly match items
      • assertUnsubscribed

        public void assertUnsubscribed()
        Assert that this Subscriber is unsubscribed.
        Throws:
        AssertionError - if this Subscriber is not unsubscribed
      • assertNoErrors

        public void assertNoErrors()
        Assert that this Subscriber has received no onError notifications.
        Throws:
        AssertionError - if this Subscriber has received one or more onError notifications
      • awaitTerminalEvent

        public void awaitTerminalEvent()
        Blocks until this Subscriber receives a notification that the Observable is complete (either an onCompleted or onError notification).
        Throws:
        RuntimeException - if the Subscriber is interrupted before the Observable is able to complete
      • awaitTerminalEvent

        public void awaitTerminalEvent(long timeout,
                                       TimeUnit unit)
        Blocks until this Subscriber receives a notification that the Observable is complete (either an onCompleted or onError notification), or until a timeout expires.
        Parameters:
        timeout - the duration of the timeout
        unit - the units in which timeout is expressed
        Throws:
        RuntimeException - if the Subscriber is interrupted before the Observable is able to complete
      • awaitTerminalEventAndUnsubscribeOnTimeout

        public void awaitTerminalEventAndUnsubscribeOnTimeout(long timeout,
                                                              TimeUnit unit)
        Blocks until this Subscriber receives a notification that the Observable is complete (either an onCompleted or onError notification), or until a timeout expires; if the Subscriber is interrupted before either of these events take place, this method unsubscribes the Subscriber from the Observable).
        Parameters:
        timeout - the duration of the timeout
        unit - the units in which timeout is expressed
      • getLastSeenThread

        public Thread getLastSeenThread()
        Returns the last thread that was in use when an item or notification was received by this Subscriber.
        Returns:
        the Thread on which this Subscriber last received an item or notification from the Observable it is subscribed to