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

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

private IdleTimeoutBidi_must_not_signal_error_if_traffic_is_one_way ( ) : void
Результат void
        public void IdleTimeoutBidi_must_not_signal_error_if_traffic_is_one_way()
        {
            this.AssertAllStagesStopped(() =>
            {
                var upstreamWriter = TestPublisher.CreateProbe<int>(this);
                var downstreamWriter = TestPublisher.CreateProbe<string>(this);

                var upstream = Flow.FromSinkAndSource(Sink.Ignore<string>(),
                    Source.FromPublisher<int>(upstreamWriter), Keep.Left);
                var downstream = Flow.FromSinkAndSource(Sink.Ignore<int>(),
                    Source.FromPublisher<string>(downstreamWriter), Keep.Left);

                var assembly = upstream.JoinMaterialized(
                    BidiFlow.BidirectionalIdleTimeout<int, string>(TimeSpan.FromSeconds(2)),
                    Keep.Left).JoinMaterialized(downstream, Keep.Both);
                var r = assembly.Run(Materializer);
                var upFinished = r.Item1;
                var downFinished = r.Item2;

                upstreamWriter.SendNext(1);
                Thread.Sleep(1000);
                upstreamWriter.SendNext(1);
                Thread.Sleep(1000);
                upstreamWriter.SendNext(1);
                Thread.Sleep(1000);

                upstreamWriter.SendComplete();
                downstreamWriter.SendComplete();

                upFinished.Wait(TimeSpan.FromSeconds(3)).Should().BeTrue();
                downFinished.Wait(TimeSpan.FromSeconds(3)).Should().BeTrue();
            }, Materializer);
        }