public void Constructor_SetErrorMessage() { // Arrange / Act var sut = new RegexValidationRule(_ERROR_MESSAGE, @"\d+"); // Assert sut.ErrorMessage.Should().Be(_ERROR_MESSAGE); }
public void ValidatesTextMatchingRegexTest() { var validator = new RegexValidationRule(); validator.RegexText = ".B."; var validationResult = validator.Validate("ABC", CultureInfo.CurrentCulture); Assert.IsTrue(validationResult.IsValid); }
public void Validate_empty_property_type_of_string_with_empty_expression_should_be_invalid() { var propertyName = "StringProperty"; var target = new RegexValidationRule(propertyName, ""); var businessObject = new TestEntity() { StringProperty = "" }; Assert.IsFalse(target.Validate(businessObject)); }
public void Validate_property_type_of_string_with_any_value_should_be_valid() { var propertyName = "StringProperty"; var target = new RegexValidationRule(propertyName, @"."); var businessObject = new TestEntity() { StringProperty = "Test text" }; Assert.IsTrue(target.Validate(businessObject)); }
public void InValidatesTextNotMatchingRegexTest() { var validator = new RegexValidationRule(); validator.RegexText = ".B."; validator.ErrorMessage = ErrorMessage; var validationResult = validator.Validate("AXC", CultureInfo.CurrentCulture); Assert.IsFalse(validationResult.IsValid); Assert.AreEqual(ErrorMessage, validationResult.ErrorContent.ToString()); }
public void Validate_ForValidValue(string pattern, bool nullIsValid, bool invert, bool expected) { // Arrange var sut = new RegexValidationRule(_ERROR_MESSAGE, pattern, nullIsValid, invert); // Act var result = sut.Validate("321"); // Assert result.Should().Be(expected); }
private static void CreateValidationRules(ValueBindingModel valueBindingModel) { // validation rules var rules = new List <ValidationRule>(); if (!valueBindingModel.IsOptional) { switch (valueBindingModel.Control.Type) { case ControlTypes.Options: rules.Add(new OptionSelectedValidationRule()); break; case ControlTypes.Folder: case ControlTypes.InputFile: case ControlTypes.Integer: case ControlTypes.Multiline: case ControlTypes.Number: case ControlTypes.OutputFile: case ControlTypes.Text: case ControlTypes.Uri: rules.Add(new NotNullOrEmptyValidationRule()); break; } } // these could also be hardcoded in the xaml of the control itself // but we want to keep flexibility for when to activate them. switch (valueBindingModel.Control.Type) { case ControlTypes.Folder: rules.Add(new FolderExistsValidationRule()); break; case ControlTypes.InputFile: rules.Add(new FileExistsValiadtionRule()); break; case ControlTypes.Uri: rules.Add(new UriValidationRule()); break; } var mask = valueBindingModel.Control.Properties.Mask(); if (!String.IsNullOrWhiteSpace(mask)) { switch (valueBindingModel.Control.Type) { case ControlTypes.Folder: case ControlTypes.InputFile: case ControlTypes.OutputFile: // no-op break; case ControlTypes.Text: var rule = new RegexValidationRule(); rule.Regex = mask; rules.Add(rule); break; default: Trace.WriteLine(String.Format( "No validation rule was applied to '{0}' for the mask attribute '{1}'.", valueBindingModel.Name, mask), "ValidationRules"); break; } } var min = valueBindingModel.Control.Properties.MinValue(); var max = valueBindingModel.Control.Properties.MaxValue(); if (!String.IsNullOrWhiteSpace(min) || !String.IsNullOrWhiteSpace(max)) { switch (valueBindingModel.Control.Type) { case ControlTypes.Integer: var intRule = IntegerMinMaxValidationRule.Create(min, max); if (intRule != null) { rules.Add(intRule); } break; case ControlTypes.Number: var nmbRule = NumberMinMaxValidationRule.Create(min, max); if (nmbRule != null) { rules.Add(nmbRule); } break; case ControlTypes.Folder: case ControlTypes.InputFile: case ControlTypes.Multiline: case ControlTypes.OutputFile: case ControlTypes.Text: case ControlTypes.Uri: var lngRule = StringLengthValidationRule.Create(min, max); if (lngRule != null) { rules.Add(lngRule); } break; default: Trace.WriteLine(String.Format( "No validation rule was applied to '{0}' for the min ('{1}') and max ('{2}') attributes.", valueBindingModel.Name, min, max), "ValidationRules"); break; } } if (rules.Count > 0) { valueBindingModel.Control.ValidationRules = rules; } }