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

A_Balance_must_cancel_upstream_when_downstream_cancel() private method

        public void A_Balance_must_cancel_upstream_when_downstream_cancel()
        {
            this.AssertAllStagesStopped(() =>
            {
                var p1 = TestPublisher.CreateManualProbe<int>(this);
                var c1 = TestSubscriber.CreateManualProbe<int>(this);
                var c2 = TestSubscriber.CreateManualProbe<int>(this);

                RunnableGraph.FromGraph(GraphDsl.Create(b =>
                {
                    var balance = b.Add(new Balance<int>(2));
                    var source = Source.FromPublisher(p1.Publisher);
                    b.From(source).To(balance.In);
                    b.From(balance.Out(0)).To(Sink.FromSubscriber(c1));
                    b.From(balance.Out(1)).To(Sink.FromSubscriber(c2));
                    return ClosedShape.Instance;
                })).Run(Materializer);

                var bsub = p1.ExpectSubscription();
                var sub1 = c1.ExpectSubscription();
                var sub2 = c2.ExpectSubscription();

                sub1.Request(1);
                p1.ExpectRequest(bsub, 16);
                bsub.SendNext(1);
                c1.ExpectNext(1);

                sub2.Request(1);
                bsub.SendNext(2);
                c2.ExpectNext(2);

                sub1.Cancel();
                sub2.Cancel();
                bsub.ExpectCancellation();
            }, Materializer);
        }
    }