Akka.Streams.Tests.Dsl.GraphBalanceSpec.A_Balance_must_support_waiting_for_demand_from_all_downstream_subscriptions C# (CSharp) Method

A_Balance_must_support_waiting_for_demand_from_all_downstream_subscriptions() private method

        public void A_Balance_must_support_waiting_for_demand_from_all_downstream_subscriptions()
        {
            this.AssertAllStagesStopped(() =>
            {
                var s1 = TestSubscriber.CreateManualProbe<int>(this);

                var p2 = RunnableGraph.FromGraph(GraphDsl.Create(Sink.AsPublisher<int>(false), (b, p2Sink) =>
                {
                    var balance = b.Add(new Balance<int>(2, true));
                    var source = Source.From(Enumerable.Range(1, 3)).MapMaterializedValue<IPublisher<int>>(_ => null);
                    b.From(source).To(balance.In);
                    b.From(balance.Out(0)).To(Sink.FromSubscriber(s1).MapMaterializedValue<IPublisher<int>>(_ => null));
                    b.From(balance.Out(1)).To(p2Sink);
                    return ClosedShape.Instance;
                })).Run(Materializer);

                var sub1 = s1.ExpectSubscription();

                sub1.Request(1);
                s1.ExpectNoMsg(TimeSpan.FromMilliseconds(200));

                var s2 = TestSubscriber.CreateManualProbe<int>(this);
                p2.Subscribe(s2);
                var sub2 = s2.ExpectSubscription();

                // still no demand from s2
                s2.ExpectNoMsg(TimeSpan.FromMilliseconds(200));

                sub2.Request(2);
                s1.ExpectNext(1);
                s2.ExpectNext(2, 3);
                s1.ExpectComplete();
                s2.ExpectComplete();
            }, Materializer);
        }