public void should_persist_message_and_ack(int batchSize)
        {
            var persistedEntries = new List <MatcherEntry>();

            _storeBatchFunc = persistedEntries.AddRange;
            _batchSize      = batchSize;

            using (SystemDateTime.PauseTime())
            {
                _matcher.Start();

                var messageId = MessageId.NextId();
                _matcher.EnqueueMessage(_peerId, messageId, new MessageTypeId("Abc.X"), new byte[0]);

                var signal = new AutoResetEvent(false);
                _matcher.EnqueueWaitHandle(signal);
                signal.WaitOne(50000).ShouldBeTrue();

                _matcher.EnqueueAck(_peerId, messageId);

                _matcher.EnqueueWaitHandle(signal);
                signal.WaitOne(50000).ShouldBeTrue();

                persistedEntries.Count.ShouldEqual(2);
            }
        }