public static bool TryGetArgumentException <T>(this IValidatableArgument <T> @validatableArgument, out ArgumentException argumentException) { if (@validatableArgument == null) { throw new ArgumentNullException("@validatableArgument"); } IValidationPredicateResult firstPredicateMatch = validatableArgument.MatchValidationPredicates().Where(vp => vp.IsMatch).FirstOrDefault(); if (firstPredicateMatch == null) { argumentException = null; return(false); } if (firstPredicateMatch.ValidationType == ValidationType.Range) { argumentException = new ArgumentOutOfRangeException(@validatableArgument.Name, firstPredicateMatch.Message); } else { if (validatableArgument.Value == null) { argumentException = new ArgumentNullException(@validatableArgument.Name, firstPredicateMatch.Message); } else { argumentException = new ArgumentException(firstPredicateMatch.Message, @validatableArgument.Name); } } return(true); }
public void ReturnFalseAndUnmatchMessage_WhenArgumentIsNotMemberOfTheEnum() { // Arrange. CustomEnum value = (CustomEnum)5; // Act. IValidationPredicateResult result = MemberOfEnumValidationPredicate <CustomEnum> .Instance.Match(value); // Assert. Assert.IsFalse(result.IsMatch); Assert.AreEqual("Argument value <5> is not member of the enum <Bytes2you.Validation.UnitTests.Testing.Mocks.CustomEnum>.", result.Message); }
public void ReturnFalseAndUnmatchMessage_WhenArgumentIsDoubleNaN() { // Arrange. double value = double.NaN; // Act. IValidationPredicateResult result = DoubleNotNaNValidationPredicate.Instance.Match(value); // Assert. Assert.IsFalse(result.IsMatch); Assert.AreEqual("The argument is NaN.", result.Message); }
public void ReturnFalseAndUnmatchMessage_WhenBoundIsDoublePositiveInfinityAndArgumentIsNegativeInfinity() { // Arrange. EqualValidationPredicate <double> validationPredicate = new EqualValidationPredicate <double>(double.PositiveInfinity); // Act. IValidationPredicateResult result = validationPredicate.Match(double.NegativeInfinity); // Assert. Assert.IsFalse(result.IsMatch); Assert.AreEqual("Argument value <-Infinity> is not equal to <Infinity>.", result.Message); }
public void ReturnFalseAndUnmatchMessage_WhenBoundIsNotNullAndArgumentIsNull() { // Arrange. EqualValidationPredicate <string> validationPredicate = new EqualValidationPredicate <string>("a"); // Act. IValidationPredicateResult result = validationPredicate.Match(null); // Assert. Assert.IsFalse(result.IsMatch); Assert.AreEqual("Argument value <null> is not equal to <a>.", result.Message); }
public void ReturnFalseAndUnmatchMessage_WhenArgumentIsNotEqual() { // Arrange. EqualValidationPredicate <int> validationPredicate = new EqualValidationPredicate <int>(3); // Act. IValidationPredicateResult result = validationPredicate.Match(5); // Assert. Assert.IsFalse(result.IsMatch); Assert.AreEqual("Argument value <5> is not equal to <3>.", result.Message); }
public void ReturnTrueAndMatchMessage_WhenBoundIsFloatNegativeInfinityAndArgumentIsNegativeInfinity() { // Arrange. EqualValidationPredicate <float> validationPredicate = new EqualValidationPredicate <float>(float.NegativeInfinity); // Act. IValidationPredicateResult result = validationPredicate.Match(float.NegativeInfinity); // Assert. Assert.IsTrue(result.IsMatch); Assert.AreEqual("The argument is equal to <-Infinity>.", result.Message); }
public void ReturnTrueAndMatchMessage_WhenBoundIsFloatPositiveInfinityAndArgumentIsNotInfinity() { // Arrange. NotEqualValidationPredicate <float> validationPredicate = new NotEqualValidationPredicate <float>(float.PositiveInfinity); // Act. IValidationPredicateResult result = validationPredicate.Match(5); // Assert. Assert.IsTrue(result.IsMatch); Assert.AreEqual("Argument value <5> is not equal to <Infinity>.", result.Message); }
public void ReturnFalseAndUnmatchMessage_WhenArgumentConsistsOnlyOfWhiteSpaceCharacters() { // Arrange. string value = " \t\r\n "; // Act. IValidationPredicateResult result = StringNotNullOrWhiteSpaceValidationPredicate.Instance.Match(value); // Assert. Assert.IsFalse(result.IsMatch); Assert.AreEqual("The argument is null, an empty string or consists only of white space characters.", result.Message); }
public void ReturnFalseAndUnmatchMessage_WhenArgumentIsNotDoubleInfinity() { // Arrange. double value = 5; // Act. IValidationPredicateResult result = DoubleInfinityValidationPredicate.Instance.Match(value); // Assert. Assert.IsFalse(result.IsMatch); Assert.AreEqual("Argument value <5> is not infinity.", result.Message); }
public void ReturnTrueAndMatchMessage_WhenArgumentIsDoubleNegativeInfinity() { // Arrange. double value = double.NegativeInfinity; // Act. IValidationPredicateResult result = DoubleInfinityValidationPredicate.Instance.Match(value); // Assert. Assert.IsTrue(result.IsMatch); Assert.AreEqual("The argument is infinity.", result.Message); }
public void ReturnTrueAndMatchMessage_WhenArgumentIsNull() { // Arrange. int?value = null; // Act. IValidationPredicateResult result = NullableNullValidationPredicate <int> .Instance.Match(value); // Assert. Assert.IsTrue(result.IsMatch); Assert.AreEqual("The argument is null.", result.Message); }
public void ReturnFalseAndUnmatchMessage_WhenArgumentIsNotNull() { // Arrange. int?value = 5; // Act. IValidationPredicateResult result = NullableNullValidationPredicate <int> .Instance.Match(value); // Assert. Assert.IsFalse(result.IsMatch); Assert.AreEqual("Argument value <5> is not null.", result.Message); }
public void ReturnFalseAndUnmatchMessage_WhenArgumentIsEmpty() { // Arrange. string value = string.Empty; // Act. IValidationPredicateResult result = StringNotNullOrEmptyValidationPredicate.Instance.Match(value); // Assert. Assert.IsFalse(result.IsMatch); Assert.AreEqual("The argument is null or an empty string.", result.Message); }
public void ReturnTrueAndMatchMessage_WhenArgumentHasElements() { // Arrange. string value = "asdf"; // Act. IValidationPredicateResult result = StringNotNullOrEmptyValidationPredicate.Instance.Match(value); // Assert. Assert.IsTrue(result.IsMatch); Assert.AreEqual("Argument value <asdf> is neither null nor an empty string.", result.Message); }
public void ReturnTrueAndMatchMessage_WhenArgumentIsEmpty() { // Arrange. int[] value = new int[] { }; // Act. IValidationPredicateResult result = EnumerableNullOrEmptyValidationPredicate <int[]> .Instance.Match(value); // Assert. Assert.IsTrue(result.IsMatch); Assert.AreEqual("The argument is null or empty.", result.Message); }
public void ReturnFalseAndUnmatchMessage_WhenBoundIsFloatPositiveInfinityAndArgumentIsPositiveInfinity() { // Arrange. NotEqualValidationPredicate <float> validationPredicate = new NotEqualValidationPredicate <float>(float.PositiveInfinity); // Act. IValidationPredicateResult result = validationPredicate.Match(float.PositiveInfinity); // Assert. Assert.IsFalse(result.IsMatch); Assert.AreEqual("The argument is equal to <Infinity>.", result.Message); }
public void ReturnTrueAndMatchMessage_WhenArgumentContainsNonWhiteSpaceChars() { // Arrange. string value = " \r\nasdf"; // Act. IValidationPredicateResult result = StringNotNullOrWhiteSpaceValidationPredicate.Instance.Match(value); // Assert. Assert.IsTrue(result.IsMatch); Assert.AreEqual("Argument value < \r\nasdf> is neither null nor an empty string, nor consists only of white space characters.", result.Message); }
public void ReturnTrueAndMatchMessage_WhenArgumentIsEqual() { // Arrange. EqualValidationPredicate <int> validationPredicate = new EqualValidationPredicate <int>(3); // Act. IValidationPredicateResult result = validationPredicate.Match(3); // Assert. Assert.IsTrue(result.IsMatch); Assert.AreEqual("The argument is equal to <3>.", result.Message); }
public void ReturnFalseAndUnmatchMessage_WhenArgumentIsFalse() { // Arrange. bool value = false; // Act. IValidationPredicateResult result = TrueValidationPredicate.Instance.Match(value); // Assert. Assert.IsFalse(result.IsMatch); Assert.AreEqual("The argument is false.", result.Message); }
public void ReturnFalseAndUnmatchMessage_WhenBoundIsFloatNegativeInfinityAndArgumentIsNotInfinity() { // Arrange. EqualValidationPredicate <float> validationPredicate = new EqualValidationPredicate <float>(float.NegativeInfinity); // Act. IValidationPredicateResult result = validationPredicate.Match(5); // Assert. Assert.IsFalse(result.IsMatch); Assert.AreEqual("Argument value <5> is not equal to <-Infinity>.", result.Message); }
public void ReturnTrueAndMatchMessage_WhenArgumentIsNotNull() { // Arrange. object value = new object(); // Act. IValidationPredicateResult result = NotNullValidationPredicate <object> .Instance.Match(value); // Assert. Assert.IsTrue(result.IsMatch); Assert.AreEqual("Argument value <System.Object> is not null.", result.Message); }
public void ReturnTrueAndMatchMessage_WhenBoundIsNullAndArgumentIsNull() { // Arrange. EqualValidationPredicate <string> validationPredicate = new EqualValidationPredicate <string>(null); // Act. IValidationPredicateResult result = validationPredicate.Match(null); // Assert. Assert.IsTrue(result.IsMatch); Assert.AreEqual("The argument is equal to <null>.", result.Message); }
public void ReturnFalseAndUnmatchMessage_WhenArgumentIsNull() { // Arrange. object value = null; // Act. IValidationPredicateResult result = NotNullValidationPredicate <object> .Instance.Match(value); // Assert. Assert.IsFalse(result.IsMatch); Assert.AreEqual("The argument is null.", result.Message); }
public void ReturnTrueAndMatchMessage_WhenBoundIsDoublePositiveInfinityAndArgumentIsPositiveInfinity() { // Arrange. EqualValidationPredicate <double> validationPredicate = new EqualValidationPredicate <double>(double.PositiveInfinity); // Act. IValidationPredicateResult result = validationPredicate.Match(double.PositiveInfinity); // Assert. Assert.IsTrue(result.IsMatch); Assert.AreEqual("The argument is equal to <Infinity>.", result.Message); }
public void ReturnTrueAndMatchMessage_WhenArgumentIsFloatNaN() { // Arrange. float value = float.NaN; // Act. IValidationPredicateResult result = FloatNaNValidationPredicate.Instance.Match(value); // Assert. Assert.IsTrue(result.IsMatch); Assert.AreEqual("The argument is NaN.", result.Message); }
public void ReturnTrueAndMatchMessage_WhenArgumentIsNotDoubleNaN() { // Arrange. double value = 5; // Act. IValidationPredicateResult result = DoubleNotNaNValidationPredicate.Instance.Match(value); // Assert. Assert.IsTrue(result.IsMatch); Assert.AreEqual("Argument value <5> is not NaN.", result.Message); }
public void ReturnFalseAndUnmatchMessage_WhenArgumentHasElements() { // Arrange. int[] value = new int[] { 3, 4, 5 }; // Act. IValidationPredicateResult result = EnumerableNullOrEmptyValidationPredicate <int[]> .Instance.Match(value); // Assert. Assert.IsFalse(result.IsMatch); Assert.AreEqual("The argument has elements.", result.Message); }
public IEnumerable <IValidationPredicateResult> MatchValidationPredicates() { List <IValidationPredicateResult> validationPredicateResults = new List <IValidationPredicateResult>(); foreach (IValidationPredicate <T> validationPredicate in this.ValidationPredicates) { IValidationPredicateResult validationResult = validationPredicate.Match(this.Value); validationPredicateResults.Add(validationResult); } return(validationPredicateResults); }
public void ReturnTrueAndMatchMessage_WhenArgumentIsMemberOfTheEnum() { // Arrange. CustomEnum value = CustomEnum.Value2; // Act. IValidationPredicateResult result = MemberOfEnumValidationPredicate <CustomEnum> .Instance.Match(value); // Assert. Assert.IsTrue(result.IsMatch); Assert.AreEqual("Argument value <Value2> is member of the enum <Bytes2you.Validation.UnitTests.Testing.Mocks.CustomEnum>.", result.Message); }