public void When_not_initialized_the_behavior_does_not_log_behavior_applications(IOperation operation)
        {
            var sut = new TestBehavior();

            sut.AttachTo(operation);

            sut.ApplyBahviorLog(Description);
        }
        public void When_initialized_without_a_logger_the_behavior_does_not_logs_behavior_applications(IOperation operation, WorkflowConfiguration configuration)
        {
            var sut = new TestBehavior();

            sut.AttachTo(operation);
            sut.Initialize(configuration);

            sut.ApplyBahviorLog(Description);
        }
        public void Applied_behaviors_are_logged_with_the_innermost_operation(IOperation operation, FakeWorkflowLogger log)
        {
            var behavior = new FakeOperationBehavior().AttachTo(operation);
            var sut      = new TestBehavior();

            sut.AttachTo(behavior);
            sut.Initialize(new FakeWorkflowConfiguration {
                Logger = log
            });

            sut.ApplyBahviorLog(Description);

            Assert.Equal(operation, log.AppliedBehaviors[0].Operation);
        }
        public void When_initialized_with_a_logger_the_behavior_log_behavior_applications(IOperation operation, FakeWorkflowLogger log)
        {
            var sut = new TestBehavior();

            sut.AttachTo(operation);
            sut.Initialize(new FakeWorkflowConfiguration {
                Logger = log
            });

            sut.ApplyBahviorLog(Description);

            Assert.Equal(1, log.AppliedBehaviors.Count);
            Assert.Equal(sut, log.AppliedBehaviors[0].Behavior);
            Assert.Equal(operation, log.AppliedBehaviors[0].Operation);
            Assert.Equal(Description, log.AppliedBehaviors[0].Description);
        }