Akka.Streams.Tests.Dsl.QueueSinkSpec.QueueSink_should_keep_on_sending_even_after_the_buffer_has_been_full C# (CSharp) Method

QueueSink_should_keep_on_sending_even_after_the_buffer_has_been_full() private method

        public void QueueSink_should_keep_on_sending_even_after_the_buffer_has_been_full()
        {
            this.AssertAllStagesStopped(() =>
            {
                const int bufferSize = 16;
                const int streamElementCount = bufferSize + 4;
                var sink = Sink.Queue<int>().WithAttributes(Attributes.CreateInputBuffer(bufferSize, bufferSize));
                var tuple = Source.From(Enumerable.Range(1, streamElementCount))
                    .AlsoToMaterialized(
                        Flow.Create<int>().Take(bufferSize).WatchTermination(Keep.Right).To(Sink.Ignore<int>()),
                        Keep.Right)
                    .ToMaterialized(sink, Keep.Both)
                    .Run(_materializer);
                var probe = tuple.Item1;
                var queue = tuple.Item2;
                probe.Wait(TimeSpan.FromMilliseconds(300)).Should().BeTrue();

                for (var i = 1; i <= streamElementCount; i++)
                {
                    queue.PullAsync().PipeTo(TestActor);
                    ExpectMsg(new Option<int>(i));
                }
                queue.PullAsync().PipeTo(TestActor);
                ExpectMsg(Option<int>.None);
            }, _materializer);
        }