public void RequiredComponentTypeValidator_IsValid_NotValid() { MockGeneticAlgorithm algorithm = new MockGeneticAlgorithm(); CustomValidator validator = new CustomValidator(typeof(MockEntity), typeof(GeneticEntity)) { HasRequiredComponentReturnValue = false, ExpectedGeneticAlgorithm = algorithm }; bool result = validator.IsValid(algorithm, out string errorMessage); Assert.False(result); Assert.NotNull(errorMessage); }
public void RequiredComponentTypeValidator_IsValid_WithNonAlgorithmComponent() { MockGeneticAlgorithm algorithm = new MockGeneticAlgorithm(); CustomValidator validator = new CustomValidator(typeof(MockEntity), typeof(GeneticEntity)) { HasRequiredComponentReturnValue = true, ExpectedGeneticAlgorithm = algorithm }; MockTerminator terminator = new MockTerminator(); terminator.Initialize(algorithm); bool result = validator.IsValid(terminator, out string errorMessage); Assert.True(result); Assert.Null(errorMessage); }
protected override ValidationResult IsValid(Object value, ValidationContext validationContext) { if (value == null) { return(ValidationResult.Success); } var validatorConfig = (NameValueCollection)ConfigurationManager.GetSection("CustomConfig/CustomValidatorConfig"); var validationRules = validatorConfig.AllKeys .Select(key => new { PropertyName = key, ValidationRule = validatorConfig.GetValues(key).FirstOrDefault() }) .ToList(); var errorMessages = new List <string>(validationRules.Count); foreach (var validationRule in validationRules) { var property = value.GetType().GetProperty(validationRule.PropertyName); if (property == null) { continue; } var propValue = property.GetValue(value); var isValid = CustomValidator.IsValid(propValue, validationRule.ValidationRule); if (!isValid) { errorMessages.Add(FormatErrorMessage(validationRule.PropertyName)); } } if (errorMessages.Any()) { return(new ValidationResult(string.Join("\r\n", errorMessages))); } return(ValidationResult.Success); }
public void RequiredComponentTypeValidator_IsValid_NoAlgorithm() { CustomValidator validator = new CustomValidator(typeof(MockEntity), typeof(GeneticEntity)); Assert.Throws <ArgumentException>(() => validator.IsValid(new MockTerminator(), out string errorMessage)); }
public void RequiredComponentTypeValidator_IsValid_NullComponent() { CustomValidator validator = new CustomValidator(typeof(MockEntity), typeof(GeneticEntity)); Assert.Throws <ArgumentNullException>(() => validator.IsValid(null, out string errorMessage)); }