public void ShouldDequeueResponseHandlersInOrder()
        {
            var(msg1, handler1) = (new Mock <IRequestMessage>(), new Mock <IResponseHandler>());
            var(msg2, handler2) = (new Mock <IRequestMessage>(), new Mock <IResponseHandler>());
            var pipeline = new ResponsePipeline(null);

            pipeline.Enqueue(msg1.Object, handler1.Object);
            pipeline.Enqueue(msg2.Object, handler2.Object);

            pipeline.HasNoPendingMessages.Should().BeFalse();
            pipeline.Peek().Should().Be(handler1.Object);
            pipeline.Dequeue();

            pipeline.HasNoPendingMessages.Should().BeFalse();
            pipeline.Peek().Should().Be(handler2.Object);
            pipeline.Dequeue();

            pipeline.HasNoPendingMessages.Should().BeTrue();
        }
        public void ShouldDequeueResponseHandlers()
        {
            var(msg, handler) = (new Mock <IRequestMessage>(), new Mock <IResponseHandler>());
            var pipeline = new ResponsePipeline(null);

            pipeline.Enqueue(msg.Object, handler.Object);
            pipeline.HasNoPendingMessages.Should().BeFalse();

            pipeline.Dequeue();
            pipeline.HasNoPendingMessages.Should().BeTrue();
        }