Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 10
0
        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);
        }
Ejemplo n.º 11
0
        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);
        }
Ejemplo n.º 16
0
        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);
        }
Ejemplo n.º 18
0
        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);
        }
Ejemplo n.º 22
0
        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);
        }
Ejemplo n.º 24
0
        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);
        }
Ejemplo n.º 26
0
        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);
        }
Ejemplo n.º 28
0
        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);
        }
Ejemplo n.º 30
0
        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);
        }