示例#1
0
        public void Custom_Mapping_Valid()
        {
            // arrange
            var model = new Model2
            {
                EmailAddress = "*****@*****.**",
                Number       = 21,
                Category     = "dev"
            };

            var expression = new MappingExpression <Model2>();

            expression
            .ForMember(m => m.Category, cat => !string.IsNullOrWhiteSpace(cat))
            .ForMember(m => m.EmailAddress, email => email.Contains("@"))
            .ForMember(m => m.Number, num => num >= 18);

            // act
            var result = expression.Validate(model, _settings);

            // assert
            result.Should().NotBeNull();
            result.Success.Should().BeTrue();
            result.Errors.Count.Should().Be(0);
        }
示例#2
0
        public void MinValue_greater_Value_Returns_True()
        {
            // arrange
            var model = new Model2 {
                Number = 11
            };
            var expression = new MappingExpression <Model2>();

            expression.ForMember(m => m.Number, (n, exp) => exp.MinValue(n, 10, null));

            // act
            var result = expression.Validate(model, _settings);

            // assert
            result.Success.Should().BeTrue();
        }
示例#3
0
        public void IsEmailAddress_With_Valid_Email_Return_True()
        {
            var model = new ModelSimple {
                Name = "*****@*****.**"
            };

            var expression = new MappingExpression <ModelSimple>();

            expression
            .ForMember(m => m.Name, (n, exp) => exp.IsEmailAddress(n, "{0} != email '{1}'"));

            // act
            var result = expression.Validate(model, _settings);

            // assert
            result.Success.Should().BeTrue();
        }
示例#4
0
        public void NotNullOrEmpty_NonEmpty_String_Is_Valid()
        {
            // arrange
            var model = new ModelSimple {
                Name = "a"
            };

            var expression = new MappingExpression <ModelSimple>();

            expression
            .ForMember(m => m.Name, (n, exp) => exp.NotNullOrEmpty(n, null));

            // act
            var result = expression.Validate(model, _settings);

            // assert
            result.Success.Should().BeTrue();
        }
示例#5
0
        public void MinLength_Validator_ExpressionGreaterValue_is_valid()
        {
            // arrange
            var model = new ModelSimple
            {
                Name = "123",
            };

            var expression = new MappingExpression <ModelSimple>();

            expression
            .ForMember(m => m.Name, (n, exp) => exp.MinLength(n, 2, null));

            // act
            var result = expression.Validate(model, _settings);

            // assert
            result.Success.Should().BeTrue();
        }
示例#6
0
        public void NotNullOrEmpty_Empty_String_Is_Not_Valid_Override_Message()
        {
            // arrange
            var model = new ModelSimple();

            var expression = new MappingExpression <ModelSimple>();

            expression
            .ForMember(m => m.Name, (n, exp) => exp.NotNullOrEmpty(n, "Test {0} Test"));

            // act
            var result = expression.Validate(model, _settings);

            // assert
            result.Errors.Should().ContainKey("Name");
            var nameErrors = result.Errors["Name"];

            nameErrors.Count.Should().Be(1);
            nameErrors.Should().Contain(e => e == "Test Name Test");
        }
示例#7
0
        public void MinValue_Too_small_Value_Returns_False_custom_error()
        {
            // arrange
            var model = new Model2 {
                Number = 10
            };
            var expression = new MappingExpression <Model2>();

            expression.ForMember(m => m.Number, (n, exp) => exp.MinValue(n, 11, "Test {0} should be more than {1} {2}"));

            // act
            var result = expression.Validate(model, _settings);

            // assert
            result.Success.Should().BeFalse();
            result.Errors.Should().ContainKey("Number");
            var nameErrors = result.Errors["Number"];

            nameErrors.Count.Should().Be(1);
            nameErrors.Should().Contain(e => e == "Test 11 should be more than Number 10");
        }
示例#8
0
        public void MinValue_Too_small_Value_Returns_False()
        {
            // arrange
            var model = new Model2 {
                Number = 10
            };
            var expression = new MappingExpression <Model2>();

            expression.ForMember(m => m.Number, (n, exp) => exp.MinValue(n, 11, null));

            // act
            var result = expression.Validate(model, _settings);

            // assert
            result.Success.Should().BeFalse();
            result.Errors.Should().ContainKey("Number");
            var errors = result.Errors["Number"];

            errors.Count.Should().Be(1);
            errors.Should().Contain(e => e == "Number should be at least 11");
        }
示例#9
0
        public void MaxLength_Validator_Equal_Length_Expression_valid()
        {
            // arrange
            // arrange
            var model = new ModelSimple
            {
                Name = "123",
            };

            var expression = new MappingExpression <ModelSimple>();

            expression
            .ForMember(m => m.Name, (n, exp) => exp.MaxLength(n, 3, null));

            // act
            var result = expression.Validate(model, _settings);

            // assert
            result.Success.Should().BeTrue();
            result.Errors.Count.Should().Be(0);
        }
示例#10
0
        public void IsEmailAddress_Invalid_Email_Error_Custom_Error()
        {
            // arrange
            var model = new ModelSimple {
                Name = "a.com"
            };

            var expression = new MappingExpression <ModelSimple>();

            expression
            .ForMember(m => m.Name, (n, exp) => exp.IsEmailAddress(n, "{0} != email '{1}'"));

            // act
            var result = expression.Validate(model, _settings);

            // assert
            result.Success.Should().BeFalse();
            result.Errors.Should().ContainKey("Name");
            var nameErrors = result.Errors["Name"];

            nameErrors.Count.Should().Be(1);
            nameErrors.Should().Contain(e => e == "Name != email 'a.com'");
        }
示例#11
0
        public void MinLength_Validator_Expression_Invalid_custom_error()
        {
            // arrange
            var model = new ModelSimple
            {
                Name = "Jon Hawkins",
            };

            var expression = new MappingExpression <ModelSimple>();

            expression
            .ForMember(m => m.Name, (n, exp) => exp.MinLength(n, 4444, "{0} - {1} - {2}"));

            // act
            var result = expression.Validate(model, _settings);

            // assert
            result.Errors.Should().ContainKey("Name");
            var nameErrors = result.Errors["Name"];

            nameErrors.Count.Should().Be(1);
            nameErrors.Should().Contain(e => e == "4444 - Name - Jon Hawkins");
        }
示例#12
0
        public void MaxLength_Validator_Expression_Invalid()
        {
            // arrange
            // arrange
            var model = new ModelSimple
            {
                Name = "Jon Hawkins",
            };

            var expression = new MappingExpression <ModelSimple>();

            expression
            .ForMember(m => m.Name, (n, exp) => exp.MaxLength(n, 3, null));

            // act
            var result = expression.Validate(model, _settings);

            // assert
            result.Errors.Should().ContainKey("Name");
            var nameErrors = result.Errors["Name"];

            nameErrors.Count.Should().Be(1);
            nameErrors.Should().Contain(e => e == "Name should not be longer than 3");
        }