public void The_innermost_operation_is_logged(FakeWorkflowLogger logger, IOperation innerOperation) { var sut = new OperationExecutionLoggingBehavior(logger).AttachTo(new FakeOperationBehavior().AttachTo(innerOperation)); sut.Execute(); Assert.Equal(innerOperation, logger.StartedOperations[0]); Assert.Equal(innerOperation, logger.FinishedOperations[0]); }
public void Contained_errors_are_logged(Exception error, FakeWorkflowLogger log) { var sut = new ContinueOnFailureBehavior().AttachTo(new FakeOperation { ThrowOnExecute = error }); sut.Initialize(new FakeWorkflowConfiguration { Logger = log }); sut.Execute(); Assert.Equal(1, log.AppliedBehaviors.Count); Assert.Equal("Error swallowed", log.AppliedBehaviors[0].Description); }
public void The_innermost_operation_is_logged_as_the_source(FakeWorkflowLogger logger, Exception error) { var innerOperation = new FakeOperation { ThrowOnExecute = error }; var behavior = new FakeOperationBehavior().AttachTo(innerOperation); var sut = new OperationErrorLoggingBehavior(logger).AttachTo(behavior); ExecuteIgnoringErrors(sut.Execute); Assert.Equal(1, logger.OperationFailures[innerOperation].Count); }
public void Executing_an_operation_logs_the_duration(FakeWorkflowLogger logger) { Time.Stop(); var innerOperation = new FakeOperation { ExecuteAction = () => Time.Wait(TimeSpan.FromMilliseconds(10)) }; var sut = new OperationExecutionLoggingBehavior(logger).AttachTo(innerOperation); sut.Execute(); Assert.Equal(TimeSpan.FromMilliseconds(10).TotalMilliseconds, logger.FinishedOperationDurations[0].TotalMilliseconds); }
public void Start_and_finish_are_logged_in_case_of_failure(FakeWorkflowLogger logger) { var innerOperation = new FakeOperation { ThrowOnExecute = new Exception() }; var sut = new OperationExecutionLoggingBehavior(logger).AttachTo(innerOperation); ExecuteIgnoringErrors(sut.Execute); Assert.Equal(1, logger.StartedOperations.Count); Assert.Equal(1, logger.FinishedOperations.Count); }
public void Skipped_operations_are_logged(FakeWorkflowLogger log) { var operation = new SkippableOperation { SkipExecution = true }; var sut = new ConditionalExecutionBehavior().AttachTo(operation); sut.Initialize(new FakeWorkflowConfiguration { Logger = log }); sut.Execute(); Assert.Equal(1, log.AppliedBehaviors.Count); Assert.Equal("Operation was skipped", log.AppliedBehaviors[0].Description); }
public void Exceptions_thrown_during_the_execution_are_logged(FakeWorkflowLogger logger, Exception error) { var innerOperation = new FakeOperation { ThrowOnExecute = error }; var sut = new OperationErrorLoggingBehavior(logger).AttachTo(innerOperation); ExecuteIgnoringErrors(sut.Execute); Assert.Equal(1, logger.OperationFailures.Count); Assert.Equal(1, logger.OperationFailures[innerOperation].Count); Assert.Equal(innerOperation.ThrowOnExecute, logger.OperationFailures[innerOperation][0]); }
public void Executing_the_behavior_logs_the_start_and_end_of_the_operation(FakeWorkflowLogger logger, IOperation innerOperation) { var sut = new OperationExecutionLoggingBehavior(logger).AttachTo(innerOperation); sut.Execute(); Assert.Equal(1, logger.StartedOperations.Count); Assert.Equal(innerOperation, logger.StartedOperations[0]); Assert.Equal(1, logger.FinishedOperations.Count); Assert.Equal(innerOperation, logger.FinishedOperations[0]); }
public void When_no_compensating_action_is_triggered_no_event_is_logged(FakeWorkflowLogger log) { var operation = new FakeOperation { ThrowOnExecute = new Exception() }; var compensatingOperation = new FakeOperation(); var sut = new CompensatingOperationBehavior(compensatingOperation, typeof(ArgumentException)); sut.AttachTo(operation); sut.Initialize(new FakeWorkflowConfiguration { Logger = log }); ExecuteIgnoringErrors(sut.Execute); Assert.Equal(0, log.AppliedBehaviors.Count); }
public void Executing_a_compensating_operation_logs_an_event(FakeWorkflowLogger log) { var operation = new FakeOperation { ThrowOnExecute = new ArgumentException() }; var compensatingOperation = new FakeOperation(); var sut = new CompensatingOperationBehavior(compensatingOperation, typeof(Exception)); sut.AttachTo(operation); sut.Initialize(new FakeWorkflowConfiguration { Logger = log }); ExecuteIgnoringErrors(sut.Execute); Assert.Equal(1, log.AppliedBehaviors.Count); Assert.Equal("Executing compensating operation", log.AppliedBehaviors[0].Description); }
public void Retried_operations_are_logged(Exception error, FakeWorkflowLogger log) { var sut = new RetryBehavior(2, TimeSpan.Zero).AttachTo(new FakeOperation { ThrowOnExecute = error, ErrorCount = 2 }); sut.Initialize(new FakeWorkflowConfiguration { Logger = log }); sut.Execute(); Assert.Equal(2, log.AppliedBehaviors.Count); Assert.Equal("Operation retried", log.AppliedBehaviors[0].Description); }