Inheritance: ActorSubscriber
Exemplo n.º 1
0
        public void ActorSubscriberSpec_should_terminate_after_cancel()
        {
            var actorRef = Source.From(Enumerable.Range(1, 5))
                           .RunWith(Sink.ActorSubscriber <int>(ManualSubscriber.Props(TestActor)), Sys.Materializer());

            Watch(actorRef);
            actorRef.Tell("requestAndCancel");
            ExpectTerminated(actorRef);
        }
Exemplo n.º 2
0
        public void ActorSubscriber_should_signal_error()
        {
            var e        = new Exception("simulated");
            var actorRef = Source.FromEnumerator <int>(() => { throw e; })
                           .RunWith(Sink.ActorSubscriber <int>(ManualSubscriber.Props(TestActor)), Sys.Materializer());

            actorRef.Tell("ready");

            ExpectMsg <OnError>().Cause.Should().Be(e);
        }
Exemplo n.º 3
0
        public void ActorSubscriberSpec_should_not_deliver_more_after_cancel()
        {
            var actorRef = Source.From(Enumerable.Range(1, 5))
                           .RunWith(Sink.ActorSubscriber <int>(ManualSubscriber.Props(TestActor)), Sys.Materializer());

            actorRef.Tell("ready");
            ExpectMsg <OnNext>().Element.Should().Be(1);
            ExpectMsg <OnNext>().Element.Should().Be(2);
            actorRef.Tell("requestAndCancel");
            ExpectNoMsg(200);
        }
Exemplo n.º 4
0
        public void ActorSubscriber_should_receive_requested_elements()
        {
            var actorRef = Source.From(new[] { 1, 2, 3 })
                           .RunWith(Sink.ActorSubscriber <int>(ManualSubscriber.Props(TestActor)), Sys.Materializer());

            ExpectNoMsg(200);
            actorRef.Tell("ready"); //requesting 2
            ExpectMsg <OnNext>().Element.Should().Be(1);
            ExpectMsg <OnNext>().Element.Should().Be(2);
            ExpectNoMsg(200);
            actorRef.Tell("ready");
            ExpectMsg <OnNext>().Element.Should().Be(3);
            ExpectMsg <OnComplete>();
        }
Exemplo n.º 5
0
        public void ActorSubscriberSpec_should_remember_requested_after_restart()
        {
            // creating actor with default supervision, because stream supervisor default strategy is to
            var actorRef = Sys.ActorOf(ManualSubscriber.Props(TestActor));

            Source.From(Enumerable.Range(1, 7))
            .RunWith(Sink.FromSubscriber(new ActorSubscriberImpl <int>(actorRef)), Sys.Materializer());
            actorRef.Tell("ready");
            ExpectMsg <OnNext>().Element.Should().Be(1);
            ExpectMsg <OnNext>().Element.Should().Be(2);
            ExpectNoMsg(200);
            actorRef.Tell("boom");
            actorRef.Tell("ready");
            actorRef.Tell("ready");
            actorRef.Tell("boom");
            Enumerable.Range(3, 4).ForEach(n => ExpectMsg <OnNext>().Element.Should().Be(n));
            ExpectNoMsg(200);
            actorRef.Tell("ready");
            ExpectMsg <OnNext>().Element.Should().Be(7);
            ExpectMsg <OnComplete>();
        }