示例#1
0
            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);
            }
示例#2
0
            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);
            }
示例#3
0
            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());
            }
示例#4
0
            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);
            }
示例#5
0
            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);
            }
示例#6
0
            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);
            }