Akka.Streams.Tests.Dsl.GraphUnzipWithSpec.UnzipWith_must_work_in_the_sad_case C# (CSharp) Method

UnzipWith_must_work_in_the_sad_case() private method

private UnzipWith_must_work_in_the_sad_case ( ) : void
return void
        public void UnzipWith_must_work_in_the_sad_case()
        {
            this.AssertAllStagesStopped(() =>
            {
                var leftProbe = TestSubscriber.CreateManualProbe<int>(this);
                var rightProbe = TestSubscriber.CreateManualProbe<string>(this);

                RunnableGraph.FromGraph(GraphDsl.Create(b =>
                {
                    var unzip = b.Add(new UnzipWith<int, int, string>(i => Tuple.Create(1/i, 1 + "/" + i)));
                    var source = Source.From(Enumerable.Range(-2, 5));

                    b.From(source).To(unzip.In);
                    b.From(unzip.Out0).To(Sink.FromSubscriber(leftProbe));
                    b.From(unzip.Out1).To(Sink.FromSubscriber(rightProbe));

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

                var leftSubscription = leftProbe.ExpectSubscription();
                var rightSubscription = rightProbe.ExpectSubscription();

                Action requestFromBoth = () =>
                {
                    leftSubscription.Request(1);
                    rightSubscription.Request(1);
                };

                requestFromBoth();
                leftProbe.ExpectNext(1/-2);
                rightProbe.ExpectNext("1/-2");

                requestFromBoth();
                leftProbe.ExpectNext(1 / -1);
                rightProbe.ExpectNext("1/-1");

                EventFilter.Exception<DivideByZeroException>().ExpectOne(requestFromBoth);

                leftProbe.ExpectError().Should().BeOfType<DivideByZeroException>();
                rightProbe.ExpectError().Should().BeOfType<DivideByZeroException>();

                leftProbe.ExpectNoMsg(TimeSpan.FromMilliseconds(100));
                rightProbe.ExpectNoMsg(TimeSpan.FromMilliseconds(100));
            }, Materializer);
        }