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);
        }
Esempio n. 3
0
 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);
 }