public void TraversesObjectGraphToInvalidObject()
        {
            string configurationFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"ConfigurableObjectCollectionValidatorFixture.config");

            TheCollectionClass a = new TheCollectionClass();
            TheCollectionClass b = new TheCollectionClass();
            TheCollectionClass c = new TheCollectionClass();

            a.Children = new List <TheCollectionClass>();
            a.Children.Add(b);
            a.Children.Add(c);
            a.Property = "valid";
            b.Property = "valid";
            c.Property = "bad";

            Validator validator = ValidationFactory.CreateValidatorFromConfiguration(typeof(TheCollectionClass),
                                                                                     "Rule Set",
                                                                                     new FileConfigurationSource(configurationFile));
            ValidationResults       result  = validator.Validate(a);
            List <ValidationResult> results = new List <ValidationResult>(result);

            Assert.IsFalse(result.IsValid);
            Assert.AreEqual(1, results.Count);
            Assert.AreEqual("Invalid property", results[0].Message);
        }
        public void SingleObjectPassesValidation()
        {
            string configurationFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"ConfigurableObjectCollectionValidatorFixture.config");

            TheCollectionClass a = new TheCollectionClass();

            a.Property = "valid";
            a.Children = new List <TheCollectionClass>();

            Validator validator = ValidationFactory.CreateValidatorFromConfiguration(typeof(TheCollectionClass),
                                                                                     "Rule Set",
                                                                                     new FileConfigurationSource(configurationFile));
            ValidationResults result = validator.Validate(a);

            Assert.IsTrue(result.IsValid);
        }