Akka.Streams.Tests.Dsl.FlowTakeWithinSpec.A_TakeWithin_must_deliver_elements_within_the_duration_but_not_afterwards C# (CSharp) Метод

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

        public void A_TakeWithin_must_deliver_elements_within_the_duration_but_not_afterwards()
        {
            var input = 1;
            var p = TestPublisher.CreateManualProbe<int>(this);
            var c = TestSubscriber.CreateManualProbe<int>(this);
            Source.FromPublisher(p)
                .TakeWithin(TimeSpan.FromSeconds(1))
                .To(Sink.FromSubscriber(c))
                .Run(Materializer);
            var pSub = p.ExpectSubscription();
            var cSub = c.ExpectSubscription();
            cSub.Request(100);
            var demand1 = (int)pSub.ExpectRequest();
            Enumerable.Range(1,demand1).ForEach(_=>pSub.SendNext(input++));
            var demand2 = (int) pSub.ExpectRequest();
            Enumerable.Range(1, demand2).ForEach(_ => pSub.SendNext(input++));
            var demand3 = (int)pSub.ExpectRequest();
            var sentN = demand1 + demand2;
            Enumerable.Range(1, sentN).ForEach(n => c.ExpectNext(n));
            Within(TimeSpan.FromSeconds(2), c.ExpectComplete);
            Enumerable.Range(1, demand3).ForEach(_ => pSub.SendNext(input++));
            c.ExpectNoMsg(TimeSpan.FromMilliseconds(200));
        }