public void InnerFieldsDictionary()
        {
            var validationService = new ValidationService();

            var target = new Outer()
            {
                Licenses2 = new Dictionary <string, DriversLicense> {
                    { "first",
                      new DriversLicense()
                      {
                          Number = "TX"
                      } }
                }
            };

            try
            {
                Validator.ValidateObject(target, Factories.BuildValidationContext(target), true);
                Assert.Fail("Should have thrown an Exception.");
            }
            catch (ValidationException ex)
            {
                var results = (ex.ValidationResult as IEnumerable <ValidationResult>).Flatten(result => result as IEnumerable <ValidationResult>, leafNodesOnly: true);

                Assert.IsTrue((from entry in results
                               from member in entry.MemberNames
                               select member + ": " + entry.ErrorMessage).SequenceEqual(new[]
                {
                    "Licenses2[0].Value.Number: Licenses2 Number Invalid",
                    "Licenses2[0].Value.State: Licenses2 State Required",
                }));
            }
        }
Пример #2
0
        public void UseDefaultBuildValidationContextTest()
        {
            var target = new object();
            var actual = Factories.BuildValidationContext(target);

            Assert.IsNotNull(actual);
            Assert.AreEqual(target, actual.ObjectInstance);
        }
Пример #3
0
        public void SetBuildValidationContextSomethingElseTest()
        {
            var expected = new System.ComponentModel.DataAnnotations.ValidationContext(new object());
            var target   = new object();

            Factories.BuildValidationContext = (obj) =>
            {
                Assert.AreEqual(target, obj);
                return(expected);
            };
            var actual = Factories.BuildValidationContext(target);

            Assert.AreEqual(expected, actual);
        }