Akka.Streams.Tests.Dsl.GraphBroadcastSpec.A_Broadcast_must_cancel_upstream_when_downstreams_cancel C# (CSharp) Method

A_Broadcast_must_cancel_upstream_when_downstreams_cancel() private method

        public void A_Broadcast_must_cancel_upstream_when_downstreams_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 broadcast = b.Add(new Broadcast<int>(2));
                    var source = Source.FromPublisher(p1.Publisher);
                    b.From(source).To(broadcast.In);
                    b.From(broadcast.Out(0))
                        .Via(Flow.Create<int>())
                        .To(Sink.FromSubscriber(c1));
                    b.From(broadcast.Out(1))
                        .Via(Flow.Create<int>())
                        .To(Sink.FromSubscriber(c2));
                    return ClosedShape.Instance;
                })).Run(Materializer);

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

                sub1.Request(3);
                sub2.Request(3);
                p1.ExpectRequest(bSub, 16);
                bSub.SendNext(1);
                c1.ExpectNext(1);
                c2.ExpectNext(1);
                bSub.SendNext(2);
                c1.ExpectNext(2);
                c2.ExpectNext(2);
                sub1.Cancel();
                sub2.Cancel();
                bSub.ExpectCancellation();
            }, Materializer);
        }