public void Allows_Execution_Of_Configured_Rules() { var doerOfThings = new Mock <IDoThings>(); var rules = new ISynchronousRule[] { new SynchronousTrueRule(), new SynchronousFalseRule1() }; var command = new SynchronousCommandStub(doerOfThings.Object, rules); var errors = command.Validate().Errors.ToArray(); errors.Count().ShouldBe(1); errors.First().ErrorMessage.ShouldBe("FalseRule1 failed validation"); }
public void Operation_Cannot_Complete_If_Any_Rules_Fail_Validation() { var doerOfThings = new Mock <IDoThings>(); var rules = new ISynchronousRule[] { new SynchronousTrueRule(), new SynchronousFalseRule1() }; var command = new SynchronousCommandStub(doerOfThings.Object, rules); var result = command.Validate(); result.CanContinue.ShouldBe(false); result.Errors.Count().ShouldBe(1); result.Errors.First().ErrorMessage.ShouldBe("FalseRule1 failed validation"); }
public void Operation_Can_Complete_If_Rules_Pass_Validation_And_Complete_Validation_With_Successful_Validation_Results() { var doerOfThings = new Mock <IDoThings>(); doerOfThings.Setup(d => d.GetValue()).Returns("You shall pass"); var rules = new ISynchronousRule[] { new SynchronousTrueRule(), new SynchronousTrueRule() }; var command = new SynchronousCommandStub(doerOfThings.Object, rules); var validationResult = command.Validate(); validationResult.CanContinue.ShouldBeTrue(); validationResult.Errors.Count().ShouldBe(0); var executionResult = validationResult.CompleteCommandExecution(); executionResult.Success.ShouldBeTrue(); executionResult.Value.ShouldBe("You shall pass"); }
public void Completion_Properly_Handles_Caught_Peasy_Exception() { var doerOfThings = new Mock <IDoThings>(); doerOfThings.Setup(d => d.GetValue()).Throws(new PeasyException("You shall not pass")); var rules = new ISynchronousRule[] { new SynchronousTrueRule(), new SynchronousTrueRule() }; var command = new SynchronousCommandStub(doerOfThings.Object, rules); var validationResult = command.Validate(); validationResult.CanContinue.ShouldBeTrue(); validationResult.Errors.Count().ShouldBe(0); var executionResult = validationResult.CompleteCommandExecution(); executionResult.Success.ShouldBeFalse(); executionResult.Errors.Count().ShouldBe(1); executionResult.Errors.First().ErrorMessage.ShouldBe("You shall not pass"); }