Akka.Streams.Tests.Dsl.FlowBufferSpec.Buffer_must_drop_all_elements_if_buffer_is_full_and_configured_so C# (CSharp) Метод

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

private Buffer_must_drop_all_elements_if_buffer_is_full_and_configured_so ( ) : void
Результат void
        public void Buffer_must_drop_all_elements_if_buffer_is_full_and_configured_so()
        {
            var publisher = TestPublisher.CreateProbe<int>(this);
            var subscriber = TestSubscriber.CreateManualProbe<int>(this);

            Source.FromPublisher(publisher)
                .Buffer(100, OverflowStrategy.DropBuffer)
                .To(Sink.FromSubscriber(subscriber))
                .Run(Materializer);

            var sub = subscriber.ExpectSubscription();

            // Fill up buffer
            Enumerable.Range(1, 150).ForEach(i => publisher.SendNext(i));

            // The next request would  be otherwise in race with the last onNext in the above loop
            subscriber.ExpectNoMsg(TimeSpan.FromMilliseconds(500));

            // drain
            for (var i = 101; i <= 150; i++)
            {
                sub.Request(1);
                subscriber.ExpectNext(i);
            }

            sub.Request(1);
            subscriber.ExpectNoMsg(TimeSpan.FromSeconds(1));

            publisher.SendNext(-1);
            sub.Request(1);
            subscriber.ExpectNext(-1);

            sub.Cancel();
        }