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

UnzipWith_must_unzipWith_expanded_Person_unapply_3_outputs() private method

        public void UnzipWith_must_unzipWith_expanded_Person_unapply_3_outputs()
        {
            this.AssertAllStagesStopped(() =>
            {
                var probe0 = TestSubscriber.CreateManualProbe<string>(this);
                var probe1 = TestSubscriber.CreateManualProbe<string>(this);
                var probe2 = TestSubscriber.CreateManualProbe<int>(this);

                RunnableGraph.FromGraph(GraphDsl.Create(b =>
                {
                    var unzip = b.Add(new UnzipWith<Person, string, string, int>(p => Tuple.Create(p.Name, p.Surname, p.Age)));
                    var source = Source.Single(new Person("Caplin", "Capybara", 55));

                    b.From(source).To(unzip.In);
                    b.From(unzip.Out0).To(Sink.FromSubscriber(probe0));
                    b.From(unzip.Out1).To(Sink.FromSubscriber(probe1));
                    b.From(unzip.Out2).To(Sink.FromSubscriber(probe2));

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

                var subscription0 = probe0.ExpectSubscription();
                var subscription1 = probe1.ExpectSubscription();
                var subscription2 = probe2.ExpectSubscription();

                subscription0.Request(1);
                subscription1.Request(1);
                subscription2.Request(1);

                probe0.ExpectNext("Caplin");
                probe1.ExpectNext("Capybara");
                probe2.ExpectNext(55);

                probe0.ExpectComplete();
                probe1.ExpectComplete();
                probe2.ExpectComplete();
            }, Materializer);
        }