private RuleValidatorContext<Contact, string> BuildContextForName(string propertyValue)
        {
            var contact = new Contact { FirstName = propertyValue };
            var context = new RuleValidatorContext<Contact, string>(contact, "FirstName", contact.FirstName, null, null);

            return context;
        }
        public void FindDescendents_IsValid()
        {
            var addressToFind = new Address()
            {
                City = "Gatlinburg"
            };

            var primaryAddress = new Address();

            var contact = new SpecExpress.Test.Domain.Entities.Contact()
            {
                FirstName = "Charles",
                LastName  = "radar",
                Addresses = new List <Address>()
                {
                    addressToFind
                },
                PrimaryAddress = primaryAddress
            };

            var allNotfication =
                ValidationCatalog.Validate <SpecExpress.Test.Domain.Specifications.ContactSpecification>(contact);

            var filteredNotfication = ValidationCatalog.Validate <SpecExpress.Test.Domain.Specifications.ContactSpecification>(contact)
                                      .FindDescendents(v => v.Target == addressToFind)
                                      .SelectMany(vr => vr.NestedValidationResults)
                                      .ToNotification();

            Assert.That(filteredNotfication.IsValid, Is.False);
        }
Example #3
0
        public void When_MessageContainsParameters()
        {
            ValidationCatalog.AddSpecification<Contact>(
                spec => spec.Check(c => c.LastName).Required().EqualTo("Johnson"));

            //dummy data
            var contact = new Contact() { FirstName = "Joesph", LastName = "Smith" };

            //Validate
            var valNot = ValidationCatalog.Validate(contact);

            Assert.That(valNot.Errors, Is.Not.Empty);
            Assert.That(valNot.Errors.First().Message, Is.EqualTo("Last Name must equal Johnson."));
        }
Example #4
0
        public void When_WithMessageKeyIsSupplied_DefaultMessageIsOverridden()
        {
            //Add a rule
            ValidationCatalog.AddSpecification<Contact>(spec => spec.Check(c => c.LastName).Required().
                                                                      LengthBetween(1, 3).With(m => m.MessageKey = "LengthBetween"));

            //dummy data
            var contact = new Contact() { FirstName = "Joesph", LastName = "Smith" };

            //Validate
            var valNot = ValidationCatalog.Validate(contact);

            Assert.That(valNot.Errors, Is.Not.Empty);
            Assert.That(valNot.Errors.First().Message, Is.EqualTo("Last Name must be between 1 and 3 characters. You entered 5 characters."));
        }
Example #5
0
        public void When_WithMessageIsSupplied_DefaultMessageIsOverridden()
        {
            var customMessage = "Dope! It's required!";
            //Add a rule
            ValidationCatalog.AddSpecification<Contact>(spec => spec.Check(c => c.LastName).Required().
                                                                      LengthBetween(1, 3).With(m => m.Message = "Too long {PropertyValue}"));

            //dummy data
            var contact = new Contact() { FirstName = "Joesph", LastName = "Smith"};

            //Validate
            var valNot = ValidationCatalog.Validate(contact);

            Assert.That(valNot.Errors, Is.Not.Empty);
            Assert.That(valNot.Errors.First().Message, Is.EqualTo("Too long 5"));
        }
Example #6
0
        public void When_WithMessageIsSuppliedWithCustomPropetyValueFormat()
        {
            var customMessage = "Dope! It's required!";
            //Add a rule
            ValidationCatalog.AddSpecification<Contact>(
                spec => spec.Check(c => c.DateOfBirth).Required()
                            .IsInPast().With(m =>
                                                     {
                                                         m.Message =
                                                             "Date must be in the past. You entered {PropertyValue}.";
                                                         m.FormatProperty = s => s.ToShortDateString();
                                                     }));

            //String.Format("{0} must be less than {1}", m.PropertyName, m.PropertyValue.ToString("mm/dd/yyyy"))));

            //dummy data
            var contact = new Contact() { FirstName = "Joesph", LastName = "Smith", DateOfBirth = System.DateTime.Now.AddYears(1) };

            //Validate
            var valNot = ValidationCatalog.Validate(contact);

            Assert.That(valNot.Errors, Is.Not.Empty);
            Assert.That(valNot.Errors.First().Message, Is.EqualTo("Too long 5"));
        }
 private bool IsValidName(Contact contact, string name)
 {
     return name.ToUpper() == "ISVALIDNAME";
 }