public void FirstIsNotInvokedWhenConditionIsFalse(Mock <IMessageConsumer <T> > firstMock, Mock <IMessageConsumer <T> > secondStub, T message)
        {
            var sut = ConditionalMessageConsumerFacts <T> .CreateSut(firstMock.Object, secondStub.Object, m => false);

            sut.Consume(message);
            firstMock.Verify(c => c.Consume(It.IsAny <T>()), Times.Never());
        }
        public void SecondIsInvokedWhenConditionIsFalse(Mock <IMessageConsumer <T> > firstStub, Mock <IMessageConsumer <T> > secondMock, T message)
        {
            var sut = ConditionalMessageConsumerFacts <T> .CreateSut(firstStub.Object, secondMock.Object, m => false);

            sut.Consume(message);
            secondMock.Verify(c => c.Consume(message));
        }
        public void FirstIsInvokedWhenConditionIsTrue(Mock <IMessageConsumer <T> > firstMock, Mock <IMessageConsumer <T> > secondStub, T message)
        {
            var sut = ConditionalMessageConsumerFacts <T> .CreateSut(firstMock.Object, secondStub.Object, m => true);

            sut.Consume(message);
            firstMock.Verify(c => c.Consume(message));
        }
        public void SecondIsNotInvokedWhenConditionIsTrue(Mock <IMessageConsumer <T> > firstStub, Mock <IMessageConsumer <T> > secondMock, T message)
        {
            var sut = ConditionalMessageConsumerFacts <T> .CreateSut(firstStub.Object, secondMock.Object, m => true);

            sut.Consume(message);
            secondMock.Verify(c => c.Consume(It.IsAny <T>()), Times.Never());
        }
        public void SecondIsCorrect(IMessageConsumer <T> first, IMessageConsumer <T> second, Func <T, bool> condition)
        {
            var sut = ConditionalMessageConsumerFacts <T> .CreateSut(first, second, condition);

            IMessageConsumer <T> result = sut.Second;

            Assert.Equal(second, result);
        }