Akka.Streams.Tests.Dsl.FlowSplitAfterSpec.WithSubstreamsSupport C# (CSharp) Method

WithSubstreamsSupport() private method

private WithSubstreamsSupport ( int splitAfter = 3, int elementCount = 6, SubstreamCancelStrategy substreamCancelStrategy = SubstreamCancelStrategy.Drain, NotUsed>.Action run = null ) : void
splitAfter int
elementCount int
substreamCancelStrategy SubstreamCancelStrategy
run NotUsed>.Action
return void
        private void WithSubstreamsSupport(int splitAfter = 3, int elementCount = 6,
            SubstreamCancelStrategy substreamCancelStrategy = SubstreamCancelStrategy.Drain,
            Action<TestSubscriber.ManualProbe<Source<int, NotUsed>>, ISubscription, Func<Source<int, NotUsed>>> run = null)
        {

            var source = Source.From(Enumerable.Range(1, elementCount));
            var groupStream =
                source.SplitAfter(substreamCancelStrategy, i => i == splitAfter)
                    .Lift()
                    .RunWith(Sink.AsPublisher<Source<int, NotUsed>>(false), Materializer);
            var masterSubscriber = TestSubscriber.CreateManualProbe<Source<int, NotUsed>>(this);
            groupStream.Subscribe(masterSubscriber);
            var masterSubscription = masterSubscriber.ExpectSubscription();

            run?.Invoke(masterSubscriber, masterSubscription, () =>
            {
                masterSubscription.Request(1);
                return masterSubscriber.ExpectNext();
            });
        }