public void Should_NotAddError_When_Valid(ValidationStrategy validationStrategy) { Predicate <object> isValid = m => true; var error = new Error("message"); var rule = new ValidRule <object>(isValid, error); var getErrorsResult = rule.TryGetErrors(new object(), new ExecutionContextStub(), validationStrategy, out var errorsCollection); Assert.False(getErrorsResult); Assert.Same(ErrorsCollection.Empty, errorsCollection); Assert.True(errorsCollection.IsEmpty); }
public void Should_AddError_When_Valid_And_Force() { Predicate <object> isValid = m => true; var error = new Error("message"); var rule = new ValidRule <object>(isValid, error); rule.RuleSingleError = new Error("ruleSingleError"); var getErrorsResult = rule.TryGetErrors(new object(), new ExecutionContextStub(), ValidationStrategy.Force, out var errorsCollection); Assert.True(getErrorsResult); Assert.Equal("ruleSingleError", errorsCollection.Errors.Single().Message); }
public void Should_AddDefaultError_When_Invalid_And_NoError(ValidationStrategy validationStrategy) { Predicate <object> isValid = m => false; var error = new Error("default error {arg}", new[] { Arg.Text("key", "value") }); var rule = new ValidRule <object>(isValid); var getErrorsResult = rule.TryGetErrors(new object(), new ExecutionContextStub { DefaultError = error }, validationStrategy, out var errorsCollection); Assert.True(getErrorsResult); Assert.Same(error, errorsCollection.Errors.Single()); }
public void Should_NotExecutePredicate_When_Force() { var executed = 0; Predicate <object> isValid = m => { executed++; return(true); }; var rule = new ValidRule <object>(isValid); rule.TryGetErrors(new object(), new ExecutionContextStub(), ValidationStrategy.Force, out _); Assert.Equal(0, executed); }
public void Should_NotExecutePredicate_When_NullMember(ValidationStrategy validationStrategy) { var executed = 0; Predicate <object> isValid = m => { executed++; return(true); }; var rule = new ValidRule <object>(isValid); rule.TryGetErrors(null, new ExecutionContextStub(), validationStrategy, out _); Assert.Equal(0, executed); }
public void Should_PassEqualValueToPredicate(ValidationStrategy validationStrategy) { var executed = false; var member = 123.123; Predicate <object> isValid = m => { executed = true; Assert.Equal(member, m); return(true); }; var rule = new ValidRule <object>(isValid); rule.TryGetErrors(member, new ExecutionContextStub(), validationStrategy, out _); Assert.True(executed); }