public void WhenMultipleRuleValidatorCreatedWithValidRules_ThenValidatorHasErrorsIsFalse() { // Arrange var firstFieldValue = 12; var secondFieldValue = 11; var dataValue = 1; var fieldName = "Excess Mileage"; var toleranceMessage = "Excess mileage fee calculated outside of tolerance."; var zeroCodeWeaversMessage = "CodeWeavers Excess mileage fee must be greater than zero."; var zeroPosApiMessage = "Pos API Excess mileage fee must be greater than zero."; // Act var fieldValidatorCollection = new FieldValidatorCollection { new FieldValidator <decimal>(firstFieldValue, secondFieldValue, dataValue, fieldName) .AddRule((firstValue, secondValue, tolerance) => firstValue + tolerance >= secondValue, toleranceMessage), new FieldValidator <decimal>(firstFieldValue, secondFieldValue, dataValue, fieldName) .AddRule((firstValue, minimum) => firstValue >= minimum, zeroCodeWeaversMessage) .AddRule((secondValue, minimum) => secondValue >= minimum, zeroPosApiMessage) }; // Assert fieldValidatorCollection.HasErrors.Should().Be(false); fieldValidatorCollection.ValidationErrors.Count.Should().Be(0); }
public FieldValidate(XmlElement fieldDescription, FieldValidatorCollection validators, ConditionCollection conditions) { Validators = validators; Conditions = conditions; Fields = new Dictionary<string, FieldDescription>(); foreach (XmlElement n in fieldDescription.SelectNodes("Field")) { FieldDescription fd = new FieldDescription(n); Fields.Add(fd.Name, fd); } }
/// <summary> /// 載入驗證規則 /// </summary> /// <param name="XmlNode"></param> public void LoadRule(XmlElement XmlNode) { FieldValidators = new FieldValidatorCollection(XmlNode.SelectSingleNode("ValidatorList") as XmlElement); RowValidators = new RowValidatorCollection(XmlNode.SelectSingleNode("ValidatorList") as XmlElement); Conditions = new ConditionCollection(XmlNode.SelectSingleNode("ConditionList") as XmlElement); FieldValidate = new FieldValidate(XmlNode.SelectSingleNode("FieldList") as XmlElement, FieldValidators, Conditions); RowValidate = new RowValidate(XmlNode.SelectSingleNode("RowValidate") as XmlElement, RowValidators, Conditions); Duplication = new DuplicateDetection(XmlNode.SelectSingleNode("DuplicateDetection") as XmlElement); //MappingTables = LoadMappingTable(XmlNode.SelectSingleNode("MappingTable") as XmlElement); //DataSources = LoadDataSource(XmlNode.SelectSingleNode("DataSource") as XmlElement); FieldValidate.AutoCorrect += new EventHandler<AutoCorrectEventArgs>(mFieldValidate_AutoCorrect); FieldValidate.ErrorCaptured += new EventHandler<ErrorCapturedEventArgs>(mFieldValidate_ErrorCaptured); RowValidate.AutoCorrect += new EventHandler<AutoCorrectEventArgs>(mRowValidate_AutoCorrect); RowValidate.ErrorCaptured += new EventHandler<ErrorCapturedEventArgs>(mRowValidate_ErrorCaptured); }