Пример #1
0
 public void A_Flow_with_OnComplete_must_invoke_callback_for_an_empty_stream()
 {
     this.AssertAllStagesStopped(() =>
     {
         var onCompleteProbe = CreateTestProbe();
         var p = TestPublisher.CreateManualProbe <int>(this);
         Source.FromPublisher(p)
         .To(Sink.OnComplete <int>(() => onCompleteProbe.Ref.Tell("done"), _ => {}))
         .Run(Materializer);
         var proc = p.ExpectSubscription();
         proc.ExpectRequest();
         proc.SendComplete();
         onCompleteProbe.ExpectMsg("done");
         onCompleteProbe.ExpectNoMsg(TimeSpan.FromMilliseconds(100));
     }, Materializer);
 }
Пример #2
0
 public void A_Flow_with_OnComplete_must_yield_the_first_error()
 {
     this.AssertAllStagesStopped(() =>
     {
         var onCompleteProbe = CreateTestProbe();
         var p = TestPublisher.CreateManualProbe <int>(this);
         Source.FromPublisher(p)
         .To(Sink.OnComplete <int>(() => {}, ex => onCompleteProbe.Ref.Tell(ex)))
         .Run(Materializer);
         var proc = p.ExpectSubscription();
         proc.ExpectRequest();
         var cause = new TestException("test");
         proc.SendError(cause);
         onCompleteProbe.ExpectMsg(cause);
         onCompleteProbe.ExpectNoMsg(TimeSpan.FromMilliseconds(100));
     }, Materializer);
 }
Пример #3
0
        public void A_Flow_with_OnComplete_must_invoke_callback_after_transform_and_foreach_steps()
        {
            this.AssertAllStagesStopped(() =>
            {
                var onCompleteProbe = CreateTestProbe();
                var p           = TestPublisher.CreateManualProbe <int>(this);
                var foreachSink = Sink.ForEach <int>(x => onCompleteProbe.Ref.Tell("foreach-" + x));
                var future      = Source.FromPublisher(p).Select(x =>
                {
                    onCompleteProbe.Ref.Tell("map-" + x);
                    return(x);
                }).RunWith(foreachSink, Materializer);
                future.ContinueWith(t => onCompleteProbe.Tell(t.IsCompleted ? "done" : "failure"));

                var proc = p.ExpectSubscription();
                proc.ExpectRequest();
                proc.SendNext(42);
                proc.SendComplete();
                onCompleteProbe.ExpectMsg("map-42");
                onCompleteProbe.ExpectMsg("foreach-42");
                onCompleteProbe.ExpectMsg("done");
            }, Materializer);
        }