public void ShouldBeAbleToRunASavedValidation() { var validation = new Validation<Person>() .Setup(v => v.IsNotNull(p => p.Name, "Name is mandatory")); var validationRepository = new ValidationRepositoryFactory().GetValidationRepository(); validationRepository.Save(validation); var invalidPerson = new Person(); var validator = invalidPerson.ValidateUsing("Default_Validation"); Assert.IsFalse(validator.IsValid); }
public void ShouldPassForPassesSavedValidation() { var validation = new Validation<Person>("Person_Validation_Example") .Setup(v => v.IsNotNullOrEmpty(p => p.Name)); var validationRepository = new ValidationRepositoryFactory().GetValidationRepository(); validationRepository.Reset(); validationRepository.Save(validation); var person = new Person {Name = "Some Name"}; var validator = person.Validate().PassesSavedValidation(p => p, "Person_Validation_Example"); Assert.IsTrue(validator.IsValid); }
public void Initialize() { var contactValidation = new Validation<Contact_1>("Contact", new ValidationOptions { StopOnFirstError = false }) .Setup(validator => validator.IsNotNullOrEmpty(c => c.FirstName) .IsNotNullOrEmpty(c => c.LastName) .IsNotNullOrEmpty(c => c.BusinessEmail) .IsNotNullOrEmpty(c => c.PersonalEmail) .IsNotNullOrEmpty(c => c.CurrentJob.Title) ); var validationRepository = new ValidationRepositoryFactory().GetValidationRepository(); validationRepository.Save(contactValidation); }
public void ShouldBeAbleToValidateContactUsingNamedValidations() { var validation = new Validation<Contact>("Contact_Validation_Example", new ValidationOptions { StopOnFirstError = false }) .Setup(validator => validator .IsNotNullOrEmpty(c => c.FirstName) .IsNotNullOrEmpty(c => c.LastName) .IfThen(c => c.Organization != null, "Organization Title and Address are mandatory.", c => c.Organization.ValidateUsing("Company_Validation_Example")) .IfThen(c => c.Organization != null, "Current job details are missing.", c => c.CurrentJob.ValidateUsing("Job_Validation_Example")) .IfThen(c => c.Organization != null, "Business address is missing.", c => c.BusinessAddress.ValidateUsing("Address_Validation_Example")) ); var organizationValidation = new Validation<Company>("Company_Validation_Example", new ValidationOptions { StopOnFirstError = false }) .Setup(validator => validator .IsNotNullOrEmpty(c => c.Name) .PassesSavedValidation(c => c.OfficeAddress, "Address_Validation_Example") ); var addressValidation = new Validation<Contract.Address>("Address_Validation_Example") .Setup(validator => validator .IsNotNullOrEmpty(c => c.AddressLine1) .IsNotNullOrEmpty(c => c.AddressLine2) .IsNotNullOrEmpty(c => c.City) .IsNotNullOrEmpty(c => c.StateOrCounty) .IsNotNullOrEmpty(c => c.Country) .IsNotNullOrEmpty(c => c.Zipcode) ); var jobValidation = new Validation<Job>("Job_Validation_Example") .Setup(validator => validator .IsNotNullOrEmpty(j => j.Title) ); var validationRepository = new ValidationRepositoryFactory().GetValidationRepository(); validationRepository.Save(validation); validationRepository.Save(organizationValidation); validationRepository.Save(addressValidation); validationRepository.Save(jobValidation); var contact = new ContactBuilder().WithFirstName().WithLastName().WithOrganization().WithCurrentJob().WithBusinessAddress().GetContact(); var contactValidator = contact.ValidateUsing("Contact_Validation_Example"); Assert.IsTrue(contactValidator.IsValid); contact.BusinessAddress.AddressLine1 = null; contactValidator = contact.ValidateUsing("Contact_Validation_Example"); Assert.IsFalse(contactValidator.IsValid); Assert.AreEqual(contactValidator.Errors[0].Message, "Business address is missing."); Assert.IsTrue(contactValidator.Errors[0].Cause.Contains("The target member Address.AddressLine1 was null or empty.")); }
public void ShouldGetTheSameValidationRepositoryOnSubsequentCalls() { var repository1 = new ValidationRepositoryFactory().GetValidationRepository(); var repositorty2 = new ValidationRepositoryFactory().GetValidationRepository(); Assert.AreEqual(repository1,repositorty2); }