/// <summary>
        /// Initializes a new instance of <see
        /// cref="CommandLineArgumentsConfiguration"/> with the specified <see cref="IArgumentValidator"/>
        /// </summary>
        /// <param name="argumentValidator">
        /// The <see cref="IArgumentValidator"/> to use in addition to the built-in validators
        /// </param>
        public CommandLineArgumentsConfiguration(IArgumentValidator argumentValidator)
            : this()
        {
            _ = argumentValidator ?? throw new ArgumentNullException(nameof(argumentValidator));

            this._validators.Add(argumentValidator);
        }
コード例 #2
0
        private static bool TryGetArgumentValidator(Expression argument, out IArgumentValidator result)
        {
            if (TryGetAbstractValidator(argument, out result))
            {
                return(true);
            }

            result = null;
            return(false);
        }
コード例 #3
0
        /// <summary>
        /// Gets an argument validator for the argument represented by the expression.
        /// </summary>
        /// <param name="argument">The argument.</param>
        /// <returns>An IArgumentValidator used to validated arguments in IFakeObjectCalls.</returns>
        public virtual IArgumentValidator GetArgumentValidator(Expression argument)
        {
            IArgumentValidator result = null;

            if (!TryGetArgumentValidator(argument, out result))
            {
                result = new EqualityArgumentValidator(ExpressionManager.GetValueProducedByExpression(argument));
            }

            return(result);
        }
コード例 #4
0
        private static bool TryGetCustomArgumentValidator(Expression expression, out IArgumentValidator validator)
        {
            if (Argument.IsCallWithArgumentValidator(expression))
            {
                validator = Argument.GetArgumentValidatorForArgument((MethodCallExpression)expression);
                return(true);
            }

            validator = null;
            return(false);
        }
コード例 #5
0
        private static string GetArgumentSignature(IArgumentValidator argument)
        {
            switch (argument)
            {
            case RequiredArgumentValidator _:
                return($"{argument.Type.ToString().ToLower()} {argument.Name}");

            case OptionalArgumentValidator opt:
                return($"[{argument.Type.ToString().ToLower()} {argument.Name} = {opt.ToValue()}]");

            default:
                throw new ArgumentOutOfRangeException(nameof(argument));
            }
        }
コード例 #6
0
        private static IArgumentValidator GetArgumentValidator(Expression expressionArgument)
        {
            IArgumentValidator validator = null;

            if (!TryGetCustomArgumentValidator(expressionArgument, out validator))
            {
                return(new EqualityArgumentValidator()
                {
                    ValidArgument = ExpressionManager.GetValueProducedByExpression(expressionArgument)
                });
            }

            return(validator);
        }
コード例 #7
0
        private static string GetArgumentSignature(IArgumentValidator argument)
        {
            switch (argument)
            {
            case RequiredArgumentValidator _:
                return($"{argument.Type.ToString().ToLower()} {argument.Name}");

            case OptionalArgumentValidator _:
                throw new InvalidOperationException("Cannot use optional arguments with params arguments.");

            default:
                throw new ArgumentOutOfRangeException(nameof(argument));
            }
        }
コード例 #8
0
        private static bool TryGetAbstractValidator(Expression argument, out IArgumentValidator result)
        {
            var unary = argument as UnaryExpression;

            if (unary != null && IsArgumentValidatorConversionMethod(unary.Method))
            {
                result = ExpressionManager.GetValueProducedByExpression(unary.Operand) as IArgumentValidator;
                return(true);
            }

            var member = argument as MemberExpression;

            if (member != null && IsArgumentValidatorArgumentProperty(member))
            {
                result = ExpressionManager.GetValueProducedByExpression(member.Expression) as IArgumentValidator;
                return(true);
            }

            result = ExpressionManager.GetValueProducedByExpression(argument) as IArgumentValidator;
            return(result != null);
        }
コード例 #9
0
        private bool TryGetArgumentValidator(Expression argument, out IArgumentValidator result)
        {
            var methodExpression = GetMethodCallExpression(argument);

            if (methodExpression == null)
            {
                result = null;
                return(false);
            }

            var validatorType = GetArgumentValidatorType(methodExpression);

            if (validatorType == null)
            {
                result = null;
                return(false);
            }

            result = CreateArgumentValidatorOfType(validatorType, methodExpression);
            return(true);
        }
コード例 #10
0
ファイル: FibonacciGenerator.cs プロジェクト: gigapr/Kata
 public FibonacciGenerator(IArgumentValidator argumentValidator)
 {
     _argumentValidator = argumentValidator;
 }
コード例 #11
0
ファイル: Argument.cs プロジェクト: mpodonyi/mpoptions
 public Argument WithValidation(IArgumentValidator validator)
 {
     ThrowErrorWhenReadOnly();
     this.ArgumentValidator = validator;
     return this;
 }
コード例 #12
0
 public CreateNewToDoCommandHandler(IToDoRepository toDoRepository, IArgumentValidator argumentValidator)
 {
     _toDoRepository    = toDoRepository;
     _argumentValidator = argumentValidator;
 }
コード例 #13
0
 void IArgumentValidationBuilder.Use(IArgumentValidator validator)
 {
     _argument?.Validators.Add(validator);
 }
コード例 #14
0
 public InsetRecognizer(IInsetService insetService, IArgumentValidator argumentValidator)
 {
     _insetService = insetService;
     _argumentValidator = argumentValidator;
 }
コード例 #15
0
ファイル: SequenceGeneratorTests.cs プロジェクト: gigapr/Kata
        public void SetUp()
        {
            _argumentValidator = MockRepository.GenerateStub<IArgumentValidator>();

            _fibonacciGenerator = new FibonacciGenerator.FibonacciGenerator(_argumentValidator);
        }
コード例 #16
0
 public MatchesAnyOf(IArgumentValidator[] validators)
 {
     _validators = validators;
 }
        /// <summary>
        /// Add the specified <see cref="IArgumentValidator"/> to the validators to
        /// use for validating the commandline arguments
        /// </summary>
        /// <param name="validator">
        /// The <see cref="IArgumentValidator"/> to add
        /// </param>
        public void Add(IArgumentValidator validator)
        {
            _ = validator ?? throw new ArgumentNullException(nameof(validator));

            this._validators.Add(validator);
        }
コード例 #18
0
 public ParametersExtractor(ILogger logger, IArgumentValidator argumentValidator, IFileFinder filePatternHelper)
 {
     _logger            = logger;
     _argumentValidator = argumentValidator;
     _filePatternHelper = filePatternHelper;
 }
コード例 #19
0
 public QuoteApp(ILogger <QuoteApp> logger, IArgumentValidator argumentValidator, IQuoteCalculator quoteCalculator)
 {
     _logger            = logger;
     _argumentValidator = argumentValidator;
     _quoteCalculator   = quoteCalculator;
 }
コード例 #20
0
 public RemoveToDoCommandHandler(IToDoRepository toDoRepository, IArgumentValidator argumentValidator)
 {
     _toDoRepository    = toDoRepository;
     _argumentValidator = argumentValidator;
 }
コード例 #21
0
ファイル: ArgumentValidatorTests.cs プロジェクト: gigapr/Kata
 public void SetUp()
 {
     _argumentValidator = new ArgumentValidator();
 }
コード例 #22
0
 public DownloadService(IArgumentValidator argumentValidator)
 {
     this.argumentValidator = argumentValidator;
 }