Ejemplo n.º 1
0
        public void Initialize(RepositoryExtensionFactory.ExtensionEvents events, IConfiguration config)
        {
            events.AddtoValidateEntity(e =>
            {
                if (e.Entity is IValidate)
                {
                    IValidate model = e.Entity as IValidate;
                    e.Result        = model.ValidateModel(model);
                }
                else
                {
                    AttributedValidatorFactory validatorFactory = new AttributedValidatorFactory();

                    var validator = validatorFactory.GetValidator(e.Entity.GetType());
                    ValidationResult validationResults = validator.Validate(e.Entity);

                    IList <IValidationError> errors = new List <IValidationError>();


                    foreach (var error in validationResults.Errors)
                    {
                        errors.Add(new GenericValidationError {
                            PropertyName = error.PropertyName, ValidationError = error.ErrorMessage
                        });
                    }
                    IValidationResult ErrorResult = new GenericValidationResult {
                        IsValid = validationResults.IsValid, Errors = errors
                    };
                    e.Result = ErrorResult;
                }
            });
        }
Ejemplo n.º 2
0
        private ValidationResult GetValidationResult()
        {
            var attributeFactory = new AttributedValidatorFactory();

            var type = this.GetType();

            var validator = attributeFactory.GetValidator(type);

            var results = validator.Validate(this);

            return(results);
        }
Ejemplo n.º 3
0
        public void can_parse_pie_fiel_without_error()
        {
            var file = Path.Combine("Data",
                         Path.Combine("Pies",
                         Path.Combine("radarsensor.pie")));
            var f = new AttributedValidatorFactory();
            var txt = File.ReadAllText( file );
            Console.WriteLine( "Parsing: {0}", file );
            var pie = PieGrammar.Pie.Parse( txt );
            //            PieGrammar.Pie.parse

            var v = f.GetValidator<Pie>();
            v.Validate( pie ).IsValid.Should().BeTrue();
        }
Ejemplo n.º 4
0
        public void can_parse_pie_fiel_without_error()
        {
            var file = Path.Combine("Data",
                                    Path.Combine("Pies",
                                                 Path.Combine("radarsensor.pie")));
            var f   = new AttributedValidatorFactory();
            var txt = File.ReadAllText(file);

            Console.WriteLine("Parsing: {0}", file);
            var pie = PieGrammar.Pie.Parse(txt);
            //            PieGrammar.Pie.parse

            var v = f.GetValidator <Pie>();

            v.Validate(pie).IsValid.Should().BeTrue();
        }
Ejemplo n.º 5
0
        public void PersonViewModel_Valid()
        {
            var personViewModel = new PersonViewModel()
            {
                FirstName   = new ValidatableProperty <string>("John"),
                LastName    = new ValidatableProperty <string>("Doe"),
                DateOfBirth = new ValidatableProperty <System.DateTime>(System.DateTime.Now.AddYears(-20))
            };

            var attributeFactory = new AttributedValidatorFactory();

            var type = personViewModel.GetType();

            var validator = attributeFactory.GetValidator(type);

            var results = validator.Validate(personViewModel);

            Assert.IsTrue(results.IsValid);
        }
Ejemplo n.º 6
0
        public void PersonViewModel_New()
        {
            var personViewModel = new PersonViewModel();

            var attributeFactory = new AttributedValidatorFactory();

            var type = personViewModel.GetType();

            var validator = attributeFactory.GetValidator(type);

            var results = validator.Validate(personViewModel);

            Assert.IsFalse(results.IsValid);

            Assert.AreEqual($"'{nameof(PersonViewModel.FirstName)}' must not be empty.", results.Errors[0].ErrorMessage);

            Assert.AreEqual($"'{nameof(PersonViewModel.LastName)}' must not be empty.", results.Errors[1].ErrorMessage);

            Assert.AreEqual($"'{nameof(PersonViewModel.DateOfBirth)}' should not be empty.", results.Errors[2].ErrorMessage);
        }
        public void invalid_order_item_should_cause_checkout_request_to_fail_validation()
        {
            var badRequest = new DwollaCheckoutRequest
            {
                ClientId      = "abcdefg",
                ClientSecret  = "abcdefg",
                OrderId       = "MyOrderId1",
                PurchaseOrder = new DwollaPurchaseOrder
                {
                    OrderItems =
                    {
                        new DwollaOrderItem("Candy Bar", -25.00m, 0)
                        {
                            Description = "Expensive Candy Bar",
                        }
                    },
                    DestinationId = "",
                },
            };

            var results = new AttributedValidatorFactory().GetValidator <DwollaCheckoutRequest>()
                          .Validate(badRequest);

            results.IsValid.Should().BeFalse();

            //check customized error message descriptions too.
            results.Errors.Select(x =>
            {
                Console.WriteLine((object)x);
                return(x.ErrorMessage);
            }
                                  ).SequenceEqual(new[]
            {
                "'PurchaseOrder.DestinationId' should not be empty.",
                "The 'OrderItem.Price' for 'Candy Bar' must be greater than or equal to $0.00.",
                "The 'OrderItem.Quantity' for 'Candy Bar' must be greater than or equal to 1.",
                "'PurchaseOrder.Total' must be greater than or equal to '1.00'."
            })
            .Should().BeTrue();
        }
        public void invalid_order_item_should_cause_checkout_request_to_fail_validation()
        {
            var badRequest = new DwollaCheckoutRequest
                                 {
                                     ClientId = "abcdefg",
                                     ClientSecret = "abcdefg",
                                     OrderId = "MyOrderId1",
                                     PurchaseOrder = new DwollaPurchaseOrder
                                                         {
                                                             OrderItems =
                                                                 {
                                                                     new DwollaOrderItem("Candy Bar",-25.00m, 0)
                                                                         {
                                                                             Description = "Expensive Candy Bar",
                                                                         }
                                                                 },
                                                             DestinationId = "",
                                                         },
                                 };

            var results = new AttributedValidatorFactory().GetValidator<DwollaCheckoutRequest>()
                .Validate( badRequest );

            results.IsValid.Should().BeFalse();

            //check customized error message descriptions too.
            results.Errors.Select( x =>
                                       {
                                           Console.WriteLine( (object)x );
                                           return x.ErrorMessage;
                                       }
                ).SequenceEqual( new[]
                                     {
                                         "'PurchaseOrder.DestinationId' should not be empty.",
                                         "The 'OrderItem.Price' for 'Candy Bar' must be greater than or equal to $0.00.",
                                         "The 'OrderItem.Quantity' for 'Candy Bar' must be greater than or equal to 1.",
                                         "'PurchaseOrder.Total' must be greater than or equal to '1.00'."
                                     } )
                .Should().BeTrue();
        }
Ejemplo n.º 9
0
        public void can_parse_all_pie_fiels_without_error()
        {
            Console.WriteLine (Directory.GetCurrentDirectory());

            var files = Directory.GetFiles( Path.Combine("..",
                                            Path.Combine("..",
                                            Path.Combine("..",
                                            Path.Combine("Data",
                                            Path.Combine("3.1_b4-objects",
                                            Path.Combine("pies")))))), "*.pie" );
            var f = new AttributedValidatorFactory();

            foreach( var file in files )
            {
                var txt = File.ReadAllText( file );
                Console.WriteLine("Parsing: {0}", file);
                var pie = PieGrammar.Pie.Parse( txt );

                var v = f.GetValidator<Pie>();
                v.Validate( pie ).IsValid.Should().BeTrue();
            }
        }
Ejemplo n.º 10
0
        public void can_parse_all_pie_fiels_without_error()
        {
            Console.WriteLine(Directory.GetCurrentDirectory());

            var files = Directory.GetFiles(Path.Combine("..",
                                                        Path.Combine("..",
                                                                     Path.Combine("..",
                                                                                  Path.Combine("Data",
                                                                                               Path.Combine("3.1_b4-objects",
                                                                                                            Path.Combine("pies")))))), "*.pie");
            var f = new AttributedValidatorFactory();

            foreach (var file in files)
            {
                var txt = File.ReadAllText(file);
                Console.WriteLine("Parsing: {0}", file);
                var pie = PieGrammar.Pie.Parse(txt);


                var v = f.GetValidator <Pie>();
                v.Validate(pie).IsValid.Should().BeTrue();
            }
        }
Ejemplo n.º 11
0
        public void PersonViewModel_HasName()
        {
            var personViewModel = new PersonViewModel()
            {
                FirstName   = new ValidatableProperty <string>("John"),
                LastName    = new ValidatableProperty <string>("Doe"),
                DateOfBirth = new ValidatableProperty <DateTime>(DateTime.Now.AddYears(-10))
            };

            var attributeFactory = new AttributedValidatorFactory();

            var type = personViewModel.GetType();

            var validator = attributeFactory.GetValidator(type);

            var results = validator.Validate(personViewModel);

            Assert.IsFalse(results.IsValid);

            Assert.AreEqual(1, results.Errors.Count);

            Assert.AreEqual($"Age must be greater or equal to 18", results.Errors[0].ErrorMessage);
        }
 public AttributedValidatorFactoryTester()
 {
     factory = new AttributedValidatorFactory();
 }