Akka.Streams.Tests.Dsl.FlowGroupedWithinSpec.A_GroupedWithin_must_buffer_groups_until_requested_from_downstream C# (CSharp) Method

A_GroupedWithin_must_buffer_groups_until_requested_from_downstream() private method

        public void A_GroupedWithin_must_buffer_groups_until_requested_from_downstream()
        {
            var input = new Iterator<int>(Enumerable.Range(1, 10000));
            var p = TestPublisher.CreateManualProbe<int>(this);
            var c = TestSubscriber.CreateManualProbe<IEnumerable<int>>(this);

            Source.FromPublisher(p)
                .GroupedWithin(1000, TimeSpan.FromSeconds(1))
                .To(Sink.FromSubscriber(c))
                .Run(Materializer);

            var pSub = p.ExpectSubscription();
            var cSub = c.ExpectSubscription();

            cSub.Request(1);

            var demand1 = (int)pSub.ExpectRequest();
            for (var i = 1; i <= demand1; i++)
                pSub.SendNext(input.Next());
            c.ExpectNext().ShouldAllBeEquivalentTo(Enumerable.Range(1, demand1));

            var demand2 = (int)pSub.ExpectRequest();
            for (var i = 1; i <= demand2; i++)
                pSub.SendNext(input.Next());
            c.ExpectNoMsg(TimeSpan.FromMilliseconds(300));
            cSub.Request(1);
            c.ExpectNext().ShouldAllBeEquivalentTo(Enumerable.Range(demand1 + 1, demand2));

            pSub.SendComplete();
            c.ExpectComplete();
            c.ExpectNoMsg(TimeSpan.FromMilliseconds(100));
        }