public void MessageQueue_AddRange_fires_MessageFramesAdded()
        {
            var testMessageFrame = new MessageFrame();

            var messageQueue = new MessageQueueBatch(4096);
            MessageFrame messageFrame = null;
            messageQueue.MessageFramesAdded += m => { messageFrame = m.Single(); };

            messageQueue.AddRange(new [] { testMessageFrame });

            Assert.AreSame(testMessageFrame, messageFrame);
        }
        public void MessageQueue_AddRange_fires_MessageFramesAdded()
        {
            var testMessageFrame = new MessageFrame();

            var          messageQueue = new MessageQueueBatch(4096);
            MessageFrame messageFrame = null;

            messageQueue.MessageFramesAdded += m => { messageFrame = m.Single(); };

            messageQueue.AddRange(new [] { testMessageFrame });

            Assert.AreSame(testMessageFrame, messageFrame);
        }
        public void MessageQueue_AddRange_two_messages_after_SendMultipleFromQueue_MessageCounterSignal_IsSet_false()
        {
            var messageFramesWritten = new List <MessageFrame>();
            var messageFramesWriter  = CreateMessagFrameWriter(messageFramesWritten);

            var testMessageFrame = new MessageFrame();

            var messageQueue = new MessageQueueBatch(4096);

            messageQueue.AddRange(new[] { testMessageFrame, testMessageFrame });

            messageQueue.SendMultipleFromQueue(messageFramesWriter);

            Assert.IsFalse(messageQueue.MessageCounterSignal.IsSet);
        }
        public void MessageQueue_AddRange_two_messages_SendMultipleFromQueue_writer_receives_both_messages()
        {
            var messageFramesWritten = new List <MessageFrame>();
            var messageFramesWriter  = CreateMessagFrameWriter(messageFramesWritten);

            var testMessageFrame = new MessageFrame();

            var testMessageFrame1 = new MessageFrame();
            var testMessageFrame2 = new MessageFrame();

            var messageQueue = new MessageQueueBatch(4096);

            messageQueue.AddRange(new[] { testMessageFrame1, testMessageFrame2 });

            messageQueue.SendMultipleFromQueue(messageFramesWriter);

            Assert.AreSame(testMessageFrame1, messageFramesWritten.First());
            Assert.AreSame(testMessageFrame2, messageFramesWritten.Skip(1).Single());
        }
        public void MessageQueue_AddRange_two_messages_after_SendMultipleFromQueue_MessageCounterSignal_IsSet_false()
        {
            var messageFramesWritten = new List<MessageFrame>();
            var messageFramesWriter = CreateMessagFrameWriter(messageFramesWritten);

            var testMessageFrame = new MessageFrame();

            var messageQueue = new MessageQueueBatch(4096);
            messageQueue.AddRange(new[] { testMessageFrame, testMessageFrame });

            messageQueue.SendMultipleFromQueue(messageFramesWriter);

            Assert.IsFalse(messageQueue.MessageCounterSignal.IsSet);
        }
        public void MessageQueue_AddRange_two_messages_SendMultipleFromQueue_writer_receives_both_messages()
        {
            var messageFramesWritten = new List<MessageFrame>();
            var messageFramesWriter = CreateMessagFrameWriter(messageFramesWritten);

            var testMessageFrame = new MessageFrame();

            var testMessageFrame1 = new MessageFrame();
            var testMessageFrame2 = new MessageFrame();

            var messageQueue = new MessageQueueBatch(4096);
            messageQueue.AddRange(new[] { testMessageFrame1, testMessageFrame2 });

            messageQueue.SendMultipleFromQueue(messageFramesWriter);

            Assert.AreSame(testMessageFrame1, messageFramesWritten.First());
            Assert.AreSame(testMessageFrame2, messageFramesWritten.Skip(1).Single());
        }