Akka.Streams.Tests.Implementation.TimeoutsSpec.IdleTimeoutBidi_must_signal_error_to_all_outputs C# (CSharp) Метод

IdleTimeoutBidi_must_signal_error_to_all_outputs() приватный Метод

private IdleTimeoutBidi_must_signal_error_to_all_outputs ( ) : void
Результат void
        public void IdleTimeoutBidi_must_signal_error_to_all_outputs()
        {
            this.AssertAllStagesStopped(() =>
            {
                var upWrite = TestPublisher.CreateProbe<string>(this);
                var upRead = TestSubscriber.CreateProbe<int>(this);

                var downWrite = TestPublisher.CreateProbe<int>(this);
                var downRead = TestSubscriber.CreateProbe<string>(this);

                RunnableGraph.FromGraph(GraphDsl.Create(b =>
                {
                    var timeoutStage = b.Add(BidiFlow.BidirectionalIdleTimeout<string, int>(TimeSpan.FromSeconds(2)));

                    b.From(Source.FromPublisher<string>(upWrite)).To(timeoutStage.Inlet1);
                    b.From(timeoutStage.Outlet1).To(Sink.FromSubscriber(downRead));
                    b.From(timeoutStage.Outlet2).To(Sink.FromSubscriber(upRead));
                    b.From(Source.FromPublisher<int>(downWrite)).To(timeoutStage.Inlet2);

                    return ClosedShape.Instance;
                })).Run(Materializer);

                var te = new TestException("test");

                upWrite.SendError(te);

                upRead.ExpectSubscriptionAndError().ShouldBeEquivalentTo(te);
                downRead.ExpectSubscriptionAndError().ShouldBeEquivalentTo(te);
                downWrite.ExpectCancellation();
            }, Materializer);
        }
    }