public void Fails_Execution_With_Expected_ExecutionResult_And_Method_Invocations_When_Any_Validation_Results_Exist() { var doerOfThings = new Mock <IDoThings>(); var validationResult = new ValidationResult("You shall not pass"); var command = new SynchronousCommandStub(doerOfThings.Object, new [] { validationResult }); var result = command.Execute(); result.Success.ShouldBeFalse(); result.Errors.Count().ShouldBe(1); result.Errors.First().ErrorMessage.ShouldBe("You shall not pass"); result.Value.ShouldBeNull(); doerOfThings.Verify(d => d.Log("OnInitialization"), Times.Once); doerOfThings.Verify(d => d.Log("OnValidate"), Times.Once); doerOfThings.Verify(d => d.Log("OnGetRules"), Times.Never); doerOfThings.Verify(d => d.Log("OnComplete"), Times.Never); doerOfThings.Verify(d => d.Log("OnExecute"), Times.Never); doerOfThings.Verify(d => d.Log("OnFailedExecution"), Times.Once); doerOfThings.Verify(d => d.Log("OnPeasyExceptionHandled"), Times.Never); doerOfThings.Verify(d => d.Log("OnSuccessfulExecution"), Times.Never); }
public void Successful_Execution_With_Expected_ExecutionResult_And_Method_Invocations_When_All_Rules_Pass() { var doerOfThings = new Mock <IDoThings>(); doerOfThings.Setup(d => d.GetValue()).Returns("You shall pass"); var command = new SynchronousCommandStub(doerOfThings.Object, new ISynchronousRule[] { new SynchronousTrueRule(), new SynchronousTrueRule() }); var result = command.Execute(); result.Success.ShouldBeTrue(); result.Errors.ShouldBeNull(); result.Value.ShouldBe("You shall pass"); doerOfThings.Verify(d => d.Log("OnInitialization"), Times.Once); doerOfThings.Verify(d => d.Log("OnValidate"), Times.Once); doerOfThings.Verify(d => d.Log("OnGetRules"), Times.Once); doerOfThings.Verify(d => d.Log("OnComplete"), Times.Once); doerOfThings.Verify(d => d.Log("OnExecute"), Times.Once); doerOfThings.Verify(d => d.Log("OnFailedExecution"), Times.Never); doerOfThings.Verify(d => d.Log("OnPeasyExceptionHandled"), Times.Never); doerOfThings.Verify(d => d.Log("OnSuccessfulExecution"), Times.Once); }