public void WhenSingleValidatorReturnsTrue() { ExclusiveValidatorGroup vg = new ExclusiveValidatorGroup(Expression.Parse("true")); vg.Actions.Add(new ErrorMessageAction("exclusiveError", "exclusiveErrors")); vg.Validators.Add(new FalseValidator()); vg.Validators.Add(new TrueValidator()); vg.Validators.Add(new FalseValidator()); IValidationErrors errors = new ValidationErrors(); errors.AddError("existingErrors", new ErrorMessage("error", null)); bool valid = vg.Validate(new object(), errors); Assert.IsTrue(valid, "Validation should succeed when single inner validator returns true."); Assert.AreEqual(0, errors.GetErrors("errors").Count); Assert.AreEqual(0, errors.GetErrors("exclusiveErrors").Count); Assert.AreEqual(1, errors.GetErrors("existingErrors").Count); // ALL validators are called Assert.IsTrue(((BaseTestValidator)vg.Validators[0]).WasCalled); Assert.IsTrue(((BaseTestValidator)vg.Validators[1]).WasCalled); Assert.IsTrue(((BaseTestValidator)vg.Validators[2]).WasCalled); }
public void WhenMultipleValidatorsReturnTrueAndNotFastValidate() { ExclusiveValidatorGroup vg = new ExclusiveValidatorGroup(Expression.Parse("true")); vg.FastValidate = false; IValidationErrors errors = new ValidationErrors(); WhenMultipleValidatorsReturnTrue(vg, errors); // ALL validators are called Assert.AreEqual(2, errors.GetErrors("errors").Count); Assert.IsTrue(((BaseTestValidator)vg.Validators[0]).WasCalled); Assert.IsTrue(((BaseTestValidator)vg.Validators[1]).WasCalled); Assert.IsTrue(((BaseTestValidator)vg.Validators[2]).WasCalled); Assert.IsTrue(((BaseTestValidator)vg.Validators[3]).WasCalled); }
public void WhenGroupIsNotValidatedBecauseWhenExpressionReturnsFalse() { ExclusiveValidatorGroup vg = new ExclusiveValidatorGroup("false"); vg.Validators.Add(new FalseValidator()); vg.Validators.Add(new FalseValidator()); IValidationErrors errors = new ValidationErrors(); errors.AddError("existingErrors", new ErrorMessage("error", null)); bool valid = vg.Validate(new object(), errors); Assert.IsTrue(valid, "Validation should succeed when group validator is not evaluated."); Assert.AreEqual(0, errors.GetErrors("errors").Count); Assert.AreEqual(1, errors.GetErrors("existingErrors").Count); }
private void WhenMultipleValidatorsReturnTrue(ExclusiveValidatorGroup vg, IValidationErrors errors) { vg.Actions.Add(new ErrorMessageAction("exclusiveError", "exclusiveErrors")); vg.Validators.Add(new FalseValidator()); vg.Validators.Add(new TrueValidator()); vg.Validators.Add(new TrueValidator()); vg.Validators.Add(new FalseValidator()); errors.AddError("existingErrors", new ErrorMessage("error", null)); bool valid = vg.Validate(new object(), errors); Assert.IsFalse(valid, "Validation should not succeed when multiple inner validators return true."); Assert.AreEqual(1, errors.GetErrors("exclusiveErrors").Count); Assert.AreEqual(1, errors.GetErrors("existingErrors").Count); }
public void WhenAllValidatorsReturnTrue() { ExclusiveValidatorGroup vg = new ExclusiveValidatorGroup("true"); vg.Actions.Add(new ErrorMessageAction("exclusiveError", "exclusiveErrors")); vg.Validators.Add(new TrueValidator()); vg.Validators.Add(new TrueValidator()); vg.Validators.Add(new TrueValidator()); IValidationErrors errors = new ValidationErrors(); errors.AddError("existingErrors", new ErrorMessage("error", null)); bool valid = vg.Validate(new object(), errors); Assert.IsFalse(valid, "Validation should fail when all inner validators return true."); Assert.AreEqual(0, errors.GetErrors("errors").Count); Assert.AreEqual(1, errors.GetErrors("exclusiveErrors").Count); Assert.AreEqual(1, errors.GetErrors("existingErrors").Count); }
public void DefaultsToFastValidate() { ExclusiveValidatorGroup evg = new ExclusiveValidatorGroup(); Assert.IsTrue(evg.FastValidate); }