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; } }); }
private ValidationResult GetValidationResult() { var attributeFactory = new AttributedValidatorFactory(); var type = this.GetType(); var validator = attributeFactory.GetValidator(type); var results = validator.Validate(this); return(results); }
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(); }
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(); }
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); }
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(); }
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(); } }
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(); } }
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(); }