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(); }
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(); }