public async Task ShouldUseBuffer() { var bu = new TestBuffer(); _publisher.SetBuffer(bu); _publisher.Start(); SetupNormalQueue(); const int msgCount = 10; for (int i = 0; i < msgCount; i++) { var expected = i.ToString(); await _publisher.ProduceAsync(expected); var result = ReadFromQueue(); Assert.That(result, Is.EqualTo(string.Empty)); } Assert.That(bu.Count, Is.EqualTo(msgCount)); bu.Gate.Set(); while (bu.Count > 0) { Thread.Sleep(1); } for (int i = 0; i < msgCount; i++) { var expected = i.ToString(); var result = ReadFromQueue(); Assert.That(result, Is.EqualTo(expected)); } }