public void RunExecutesPublishersWhenConditionIsMet()
        {
            var result = GenerateResultMock();
            var logger = mocks.DynamicMock<ILogger>();
            var childPublisher = mocks.StrictMock<ITask>();
            Expect.Call(result.Clone()).Return(null);
            Expect.Call(() => result.Merge(Arg<IIntegrationResult>.Is.Anything));
            Expect.Call(() => { childPublisher.Run(null); });
            var publisher = new ConditionalPublisher
            {
                Logger = logger,
                Tasks = new ITask[] {
                    childPublisher
                },
                Conditions = new IntegrationStatus[] {
                    IntegrationStatus.Success
                }
            };
            mocks.ReplayAll();

            result.Status = IntegrationStatus.Success;
            publisher.Run(result);

            mocks.VerifyAll();
        }
        public void RunDoesNotExecutePublishersWhenConditionIsNotMet()
        {
            var result = GenerateResultMock();
            var logger = mocks.DynamicMock<ILogger>();
            var childPublisher = mocks.StrictMock<ITask>();
            var publisher = new ConditionalPublisher
            {
                Logger = logger,
                Tasks = new ITask[] {
                    childPublisher
                },
                Conditions = new IntegrationStatus[] {
                    IntegrationStatus.Success
                }
            };
            mocks.ReplayAll();

            result.Status = IntegrationStatus.Failure;
            publisher.Run(result);

            mocks.VerifyAll();
        }