Exemple #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);
        }
Exemple #2
0
        public void ReturnTheSameInstance_WhenArgumentIsValidatableArgument()
        {
            // Arrange.
            IArgument <int> argument = new ValidatableArgument <int>("argument", 3);

            // Act.
            IValidatableArgument <int> validatableArgument = argument.ToValidatableArgument();

            // Assert.
            Assert.AreSame(argument, validatableArgument);
        }
        public void ThrowArgumentNullException_WhenValidatableArgumentIsNull()
        {
            // Arrange.
            IValidatableArgument <int> validatableArgument = null;

            // Act & Assert.
            Ensure.ArgumentNullExceptionIsThrown(
                () =>
            {
                validatableArgument.Throw();
            }, "@validatableArgument");
        }
Exemple #4
0
        public void ReturnNewValidatableArgumentInstance_WhenArgumentIsNotValidatableArgument()
        {
            // Arrange.
            IArgument <int> argument = new IntArgumentMock();

            // Act.
            IValidatableArgument <int> validatableArgument = argument.ToValidatableArgument();

            // Assert.
            Assert.AreNotSame(argument, validatableArgument);
            Assert.AreEqual(argument.Name, validatableArgument.Name);
            Assert.AreEqual(argument.Value, validatableArgument.Value);
        }
Exemple #5
0
        public static void Throw <T>(this IValidatableArgument <T> @validatableArgument)
        {
            if (@validatableArgument == null)
            {
                throw new ArgumentNullException("@validatableArgument");
            }

            ArgumentException argumentException = null;

            if (validatableArgument.TryGetArgumentException(out argumentException))
            {
                throw argumentException;
            }
        }
        public void ThrowException_WhenValidatableArgumentIsNull()
        {
            // Arrange.
            IValidatableArgument <int> validatableArgument = null;

            // Act & Assert.
            ArgumentException argumentException;

            Ensure.ArgumentNullExceptionIsThrown(
                () =>
            {
                validatableArgument.TryGetArgumentException(out argumentException);
            }, "@validatableArgument");
        }
Exemple #7
0
        public void AddTheGivenValidationPredicate_WhenValidationPredicateArgumentIsNotNull()
        {
            // Arrange.
            IArgument <int>            argument             = new ValidatableArgument <int>("argument", 3);
            IValidationPredicate <int> validationPredicate1 = new LessThanValidationPredicate <int>(3);
            IValidationPredicate <int> validationPredicate2 = new GreaterThanValidationPredicate <int>(4);

            // Act.
            IValidatableArgument <int> validatableArgument = argument.AddValidationPredicate(validationPredicate1);

            validatableArgument.AddValidationPredicate(validationPredicate2);

            // Assert.
            Assert.AreEqual(2, validatableArgument.ValidationPredicates.Count());
            Assert.AreSame(validationPredicate1, validatableArgument.ValidationPredicates.First());
            Assert.AreSame(validationPredicate2, validatableArgument.ValidationPredicates.Last());
        }
Exemple #8
0
        public static IValidatableArgument <T> AddValidationPredicate <T>(this IArgument <T> @argument, IValidationPredicate <T> validationPredicate)
        {
            if (@argument == null)
            {
                throw new ArgumentNullException("@argument");
            }

            if (validationPredicate == null)
            {
                throw new ArgumentNullException("validationPredicate");
            }

            IValidatableArgument <T> validatableArgument = @argument.ToValidatableArgument();

            validatableArgument.AddValidationPredicate(validationPredicate);

            return(validatableArgument);
        }