Class TestPublisher.ManualProbe<I>

  • All Implemented Interfaces:
    org.reactivestreams.Publisher<I>
    Direct Known Subclasses:
    TestPublisher.Probe
    Enclosing class:
    TestPublisher

    public static class TestPublisher.ManualProbe<I>
    extends java.lang.Object
    implements org.reactivestreams.Publisher<I>
    Implementation of Publisher that allows various assertions. This probe does not track demand. Therefore you need to expect demand before sending elements downstream.
    • Constructor Detail

      • ManualProbe

        public ManualProbe​(boolean autoOnSubscribe,
                           ActorSystem system)
    • Method Detail

      • subscribe

        public void subscribe​(org.reactivestreams.Subscriber<? super I> subscriber)
        Subscribes a given Subscriber to this probe publisher.
        Specified by:
        subscribe in interface org.reactivestreams.Publisher<I>
      • executeAfterSubscription

        public <T> T executeAfterSubscription​(scala.Function0<T> f)
      • expectRequest

        public TestPublisher.ManualProbe expectRequest​(org.reactivestreams.Subscription subscription,
                                                       int n)
        Expect demand from a given subscription.
      • expectNoMsg

        public TestPublisher.ManualProbe expectNoMsg()
        Deprecated.
        Use expectNoMessage instead. Since 2.5.5.
        Expect no messages. NOTE! Timeout value is automatically multiplied by timeFactor.
      • expectNoMsg

        public TestPublisher.ManualProbe expectNoMsg​(scala.concurrent.duration.FiniteDuration max)
        Deprecated.
        Use expectNoMessage instead. Since 2.5.5.
        Expect no messages for a given duration. NOTE! Timeout value is automatically multiplied by timeFactor.
      • expectNoMessage

        public TestPublisher.ManualProbe expectNoMessage()
        Expect no messages. Waits for the default period configured as akka.actor.testkit.expect-no-message-default.
      • expectNoMessage

        public TestPublisher.ManualProbe expectNoMessage​(scala.concurrent.duration.FiniteDuration max)
        Expect no messages for a given duration.
      • receiveWhile

        public <T> scala.collection.immutable.Seq<T> receiveWhile​(scala.concurrent.duration.Duration max,
                                                                  scala.concurrent.duration.Duration idle,
                                                                  int messages,
                                                                  scala.PartialFunction<TestPublisher.PublisherEvent,​T> f)
        Receive messages for a given duration or until one does not match a given partial function.
      • receiveWhile$default$1

        public <T> scala.concurrent.duration.Duration receiveWhile$default$1()
      • receiveWhile$default$2

        public <T> scala.concurrent.duration.Duration receiveWhile$default$2()
      • receiveWhile$default$3

        public <T> int receiveWhile$default$3()
      • getPublisher

        public org.reactivestreams.Publisher<I> getPublisher()
      • within

        public <T> T within​(scala.concurrent.duration.FiniteDuration min,
                            scala.concurrent.duration.FiniteDuration max,
                            scala.Function0<T> f)
        Execute code block while bounding its execution time between min and max. within blocks may be nested. All methods in this trait which take maximum wait times are available in a version which implicitly uses the remaining time governed by the innermost enclosing within block.

        Note that the timeout is scaled using Duration.dilated, which uses the configuration entry "akka.test.timefactor", while the min Duration is not.

        
         val ret = within(50 millis) {
           test ! "ping"
           expectMsgClass(classOf[String])
         }
         
      • within

        public <T> T within​(scala.concurrent.duration.FiniteDuration max,
                            scala.Function0<T> f)
        Same as calling within(0 seconds, max)(f).