public void IsValid_WhenStringLength_IsGreaterThanMinLength() { var command = new FakeStringLengthCommand { StringProperty = Guid.NewGuid().ToString() }; var validator = new FakeStringMinLengthValidator(5); var result = validator.Validate(command); result.IsValid.ShouldBeTrue(); Func <ValidationFailure, bool> minLengthError = x => x.PropertyName == command.PropertyName(y => y.StringProperty); result.Errors.Any(minLengthError).ShouldBeFalse(); validator.ShouldNotHaveValidationErrorFor(x => x.StringProperty, command.StringProperty); }
public void IsValid_WhenString_IsNull() { var command = new FakeStringLengthCommand { StringProperty = null }; var validator = new FakeStringMinLengthValidator(new Random().Next(1, int.MaxValue - 3)); var result = validator.Validate(command); result.IsValid.ShouldBeTrue(); Func <ValidationFailure, bool> minLengthError = x => x.PropertyName == command.PropertyName(y => y.StringProperty); result.Errors.Any(minLengthError).ShouldBeFalse(); validator.ShouldNotHaveValidationErrorFor(x => x.StringProperty, command.StringProperty); }
public void IsInvalid_WhenStringLength_IsLessThanMinLength(string value, int minLength) { var command = new FakeStringLengthCommand { StringProperty = value }; var validator = new FakeStringMinLengthValidator(minLength); var result = validator.Validate(command); result.IsValid.ShouldBeFalse(); Func <ValidationFailure, bool> minLengthError = x => x.PropertyName == command.PropertyName(y => y.StringProperty); result.Errors.Count(minLengthError).ShouldEqual(1); result.Errors.Single(minLengthError).ErrorMessage.ShouldEqual(Resources.Validation_MinLength .Replace("{PropertyName}", "String Property") .Replace("{MinLength}", minLength.ToString(CultureInfo.InvariantCulture)) .Replace("{TotalLength}", command.StringProperty.Length.ToString(CultureInfo.InvariantCulture)) .Replace("{Characters}", value.Length == 1 ? Resources.Validation_CharacterLower : Resources.Validation_CharactersLower) ); validator.ShouldHaveValidationErrorFor(x => x.StringProperty, command.StringProperty); }