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

UnzipWith_must_work_in_the_happy_case() private method

private UnzipWith_must_work_in_the_happy_case ( ) : void
return void
        public void UnzipWith_must_work_in_the_happy_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>(Zipper));
                    var source = Source.From(Enumerable.Range(1, 4));

                    b.From(source).To(unzip.In);
                    b.From(unzip.Out0)
                        .Via(Flow.Create<int>().Buffer(4, OverflowStrategy.Backpressure))
                        .To(Sink.FromSubscriber(leftProbe));
                    b.From(unzip.Out1)
                        .Via(Flow.Create<string>().Buffer(4, OverflowStrategy.Backpressure))
                        .To(Sink.FromSubscriber(rightProbe));

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

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

                leftSubscription.Request(2);
                rightSubscription.Request(1);

                leftProbe.ExpectNext(2, 4);
                leftProbe.ExpectNoMsg(TimeSpan.FromMilliseconds(100));

                rightProbe.ExpectNext("1+1");
                rightProbe.ExpectNoMsg(TimeSpan.FromMilliseconds(100));
                
                leftSubscription.Request(1);
                rightSubscription.Request(2);

                leftProbe.ExpectNext(6);
                leftProbe.ExpectNoMsg(TimeSpan.FromMilliseconds(100));

                rightProbe.ExpectNext("2+2", "3+3");
                rightProbe.ExpectNoMsg(TimeSpan.FromMilliseconds(100));

                leftSubscription.Request(1);
                rightSubscription.Request(1);

                leftProbe.ExpectNext(8);
                rightProbe.ExpectNext("4+4");

                leftProbe.ExpectComplete();
                rightProbe.ExpectComplete();
            }, Materializer);
        }