public async Task When_outstanding_in_outbox_they_are_retrieved_correctly_async() { var minimumAgeInMs = 1000; var outbox = new InMemoryOutbox(); await outbox.AddAsync(new MessageTestDataBuilder()); await outbox.AddAsync(new MessageTestDataBuilder()); await Task.Delay(minimumAgeInMs * 2); await outbox.AddAsync(new MessageTestDataBuilder()); await outbox.AddAsync(new MessageTestDataBuilder()); var messagesToDispatch = await outbox.OutstandingMessagesAsync(minimumAgeInMs); var allMessages = await outbox.OutstandingMessagesAsync(0); foreach (var message in messagesToDispatch) { await outbox.MarkDispatchedAsync(message.Id); } var messagesAfterDispatch = await outbox.OutstandingMessagesAsync(minimumAgeInMs); Assert.Equal(2, messagesToDispatch.Count()); Assert.Equal(4, allMessages.Count()); Assert.Empty(messagesAfterDispatch); }