예제 #1
0
        public void ValidateMethodShouldRaiseErrorsChangedEvent()
        {
            int                  countInvoke     = 0;
            ValidatorBase        validator       = GetValidator();
            INotifyDataErrorInfo notifyDataError = validator;

            notifyDataError.ErrorsChanged += (sender, args) =>
            {
                args.PropertyName.ShouldEqual(PropertyToValidate);
                countInvoke++;
            };

            validator.Initialize(new ValidatorContext(new object(), GetServiceProvider()));
            notifyDataError.HasErrors.ShouldBeFalse();
            validator.UpdateErrors(PropertyToValidate, ValidatorErrors, false);
            countInvoke.ShouldEqual(1);
            notifyDataError.HasErrors.ShouldBeTrue();

            if (validator is ManualValidator)
            {
                validator.UpdateErrors(PropertyToValidate, ValidatorErrors, false);
            }
            else
            {
                validator.ValidateAsync(PropertyToValidate);
            }
            countInvoke.ShouldEqual(2);
        }
예제 #2
0
        public virtual void ValidatorShouldClearOldErrorsValidateAll()
        {
            ValidatorBase validator = GetValidator();

            validator.Initialize(new ValidatorContext(new object(), GetServiceProvider()));
            validator.UpdateErrors(PropertyToValidate, ValidatorErrors, false);

            validator.ValidateAsync().Wait();
            if (validator is ManualValidator)
            {
                var allErrors = validator.GetErrors();
                allErrors.Count.ShouldEqual(1);
                allErrors[PropertyToValidate].Single().ShouldEqual(ValidatorErrors[0]);
            }
            else
            {
                validator.IsValid.ShouldBeTrue();
            }
        }