Akka.Streams.Tests.Dsl.GraphPartialSpec.FlowFlowGraph_Partial_must_be_able_to_build_and_reuse_simple_partial_graphs C# (CSharp) Метод

FlowFlowGraph_Partial_must_be_able_to_build_and_reuse_simple_partial_graphs() приватный Метод

        public void FlowFlowGraph_Partial_must_be_able_to_build_and_reuse_simple_partial_graphs()
        {
            var doubler = GraphDsl.Create(b =>
            {
                var broadcast = b.Add(new Broadcast<int>(2));
                var zip = b.Add(ZipWith.Apply((int i, int i1) => i + i1));

                b.From(broadcast.Out(0)).To(zip.In0);
                b.From(broadcast.Out(1)).To(zip.In1);

                return new FlowShape<int, int>(broadcast.In, zip.Out);
            });

            var task =
                RunnableGraph.FromGraph(GraphDsl.Create(doubler, doubler, Sink.First<IEnumerable<int>>(), Tuple.Create,
                    (b, d1, d2, sink) =>
                    {
                        var source =
                            Source.From(Enumerable.Range(1, 3))
                                .MapMaterializedValue<Tuple<NotUsed, NotUsed, Task<IEnumerable<int>>>>(_ => null);

                        b.From(source).To(d1.Inlet);
                        b.From(d1.Outlet).To(d2.Inlet);
                        b.From(d2.Outlet).Via(Flow.Create<int>().Grouped(100)).To(sink.Inlet);

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

            task.Wait(TimeSpan.FromSeconds(3)).Should().BeTrue();
            task.Result.ShouldAllBeEquivalentTo(new[] {4, 8, 12});
        }