Пример #1
0
        public void GetErrorsShouldRedirectCallToValidators()
        {
            ValidatableViewModel viewModel = GetValidatableViewModel();
            var validator1 = viewModel.AddValidator <SpyValidator>(new object());
            var validator2 = viewModel.AddValidator <SpyValidator>(new object());

            viewModel.GetErrors(PropToValidate1).ShouldBeEmpty();
            viewModel.GetErrors(PropToValidate2).ShouldBeEmpty();

            validator1.SetErrors(PropToValidate1, PropToValidate1);
            validator1.SetErrors(PropToValidate2, PropToValidate2);
            validator2.SetErrors(PropToValidate1, PropToValidate2);
            validator2.SetErrors(PropToValidate2, PropToValidate1);

            object[] errors = viewModel.GetErrors(PropToValidate1).OfType <object>().ToArray();
            errors.Length.ShouldEqual(2);
            errors.Contains(PropToValidate1).ShouldBeTrue();
            errors.Contains(PropToValidate2).ShouldBeTrue();

            errors = viewModel.GetErrors(PropToValidate2).OfType <object>().ToArray();
            errors.Length.ShouldEqual(2);
            errors.Contains(PropToValidate1).ShouldBeTrue();
            errors.Contains(PropToValidate2).ShouldBeTrue();

            validator1.SetErrors(PropToValidate1);
            validator1.SetErrors(PropToValidate2);

            errors = viewModel.GetErrors(PropToValidate1).OfType <object>().ToArray();
            errors.Length.ShouldEqual(1);
            errors.Contains(PropToValidate2).ShouldBeTrue();

            errors = viewModel.GetErrors(PropToValidate2).OfType <object>().ToArray();
            errors.Length.ShouldEqual(1);
            errors.Contains(PropToValidate1).ShouldBeTrue();

            validator2.SetErrors(PropToValidate1);
            validator2.SetErrors(PropToValidate2);

            viewModel.GetErrors(PropToValidate1).ShouldBeEmpty();
            viewModel.GetErrors(PropToValidate2).ShouldBeEmpty();
        }
Пример #2
0
        public void GetAllErrorsShouldRedirectCallToValidators()
        {
            ValidatableViewModel viewModel = GetValidatableViewModel();
            var validator1 = viewModel.AddValidator <SpyValidator>(new object());
            var validator2 = viewModel.AddValidator <SpyValidator>(new object());

            viewModel.GetErrors().ShouldBeEmpty();
            viewModel.GetErrors().ShouldBeEmpty();

            validator1.SetErrors(PropToValidate1, PropToValidate1);
            validator1.SetErrors(PropToValidate2, PropToValidate2);
            validator2.SetErrors(PropToValidate1, PropToValidate2);
            validator2.SetErrors(PropToValidate2, PropToValidate1);

            IDictionary <string, IList <object> > errors = viewModel.GetErrors();

            errors.Count.ShouldEqual(2);

            errors[PropToValidate1].Count.ShouldEqual(2);
            errors[PropToValidate1].Contains(PropToValidate1).ShouldBeTrue();
            errors[PropToValidate1].Contains(PropToValidate2).ShouldBeTrue();

            errors[PropToValidate2].Count.ShouldEqual(2);
            errors[PropToValidate2].Contains(PropToValidate1).ShouldBeTrue();
            errors[PropToValidate2].Contains(PropToValidate2).ShouldBeTrue();

            validator1.SetErrors(PropToValidate1);
            validator1.SetErrors(PropToValidate2);

            errors = viewModel.GetErrors();
            errors.Count.ShouldEqual(2);

            errors[PropToValidate1].Count.ShouldEqual(1);
            errors[PropToValidate1].Contains(PropToValidate2).ShouldBeTrue();

            errors[PropToValidate2].Count.ShouldEqual(1);
            errors[PropToValidate2].Contains(PropToValidate1).ShouldBeTrue();

            validator2.SetErrors(PropToValidate1);
            validator2.SetErrors(PropToValidate2);

            viewModel.GetErrors().ShouldBeEmpty();
            viewModel.GetErrors().ShouldBeEmpty();
        }