public void QueueSink_should_work_with_one_element_buffer()
{
this.AssertAllStagesStopped(() =>
{
var sink = Sink.Queue<int>().WithAttributes(Attributes.CreateInputBuffer(1, 1));
var probe = TestPublisher.CreateManualProbe<int>(this);
var queue = Source.FromPublisher(probe).RunWith(sink, _materializer);
var sub = probe.ExpectSubscription();
queue.PullAsync().PipeTo(TestActor);
sub.SendNext(1); // should pull next element
ExpectMsg(new Option<int>(1));
queue.PullAsync().PipeTo(TestActor);
ExpectNoMsg(); // element requested but buffer empty
sub.SendNext(2);
ExpectMsg(new Option<int>(2));
sub.SendComplete();
var future = queue.PullAsync();
future.Wait(_pause).Should().BeTrue();
future.Result.Should().Be(Option<int>.None);
}, _materializer);
}