예제 #1
0
        public void ValueOutOfBounds2()
        {
            BoundedValueArgument<int> argument = new BoundedValueArgument<int>("value", "description", -10, -1);

            int i = 0;
            Assert.Throws<InvalidArgumentValueException>(() => argument.Parse(new[] { "0" }, ref i));
        }
예제 #2
0
        private CommandLineParser.CommandLineParser InitIgnoreCase()
        {
            var commandLineParser = new CommandLineParser.CommandLineParser();

            commandLineParser.IgnoreCase = true;
            commandLineParser.ShowUsageOnEmptyCommandline = true;

            SwitchArgument showArgument = new SwitchArgument('s', "show", "Set whether show or not", true);

            SwitchArgument hideArgument = new SwitchArgument('h', "hide", "Set whether hid or not", false);

            ValueArgument <string> level = new ValueArgument <string>('l', "level", "Set the level");

            ValueArgument <decimal> version = new ValueArgument <decimal>('v', "version", "Set desired version");

            ValueArgument <Point> point = new ValueArgument <Point>('p', "point", "specify the point");

            BoundedValueArgument <int> optimization = new BoundedValueArgument <int>('o', "optimization", 0, 3);

            EnumeratedValueArgument <string> color = new EnumeratedValueArgument <string>('c', "color", new[] { "red", "green", "blue" });

            FileArgument inputFile = new FileArgument('i', "input", "Input file");

            inputFile.FileMustExist = false;
            FileArgument outputFile = new FileArgument('x', "output", "Output file");

            outputFile.FileMustExist = false;

            DirectoryArgument inputDirectory = new DirectoryArgument('d', "directory", "Input directory");

            inputDirectory.DirectoryMustExist = false;

            point.ConvertValueHandler = delegate(string stringValue)
            {
                if (stringValue.StartsWith("[") && stringValue.EndsWith("]"))
                {
                    string[] parts =
                        stringValue.Substring(1, stringValue.Length - 2).Split(';', ',');
                    Point p = new Point();
                    p.x = int.Parse(parts[0]);
                    p.y = int.Parse(parts[1]);
                    return(p);
                }

                throw new CommandLineArgumentException("Bad point format", "point");
            };

            commandLineParser.Arguments.Add(showArgument);
            commandLineParser.Arguments.Add(hideArgument);
            commandLineParser.Arguments.Add(level);
            commandLineParser.Arguments.Add(version);
            commandLineParser.Arguments.Add(point);
            commandLineParser.Arguments.Add(optimization);
            commandLineParser.Arguments.Add(color);
            commandLineParser.Arguments.Add(inputFile);
            commandLineParser.Arguments.Add(outputFile);
            commandLineParser.Arguments.Add(inputDirectory);

            return(commandLineParser);
        }
예제 #3
0
        public void ParseInvalidValue()
        {
            BoundedValueArgument<int> argument = new BoundedValueArgument<int>("value", "description", 1, 10);

            int i = 1;
            Assert.Throws<InvalidArgumentValueException>(() => argument.Parse(new[] { "/switch1", "3A", "1", "10", "x" }, ref i));
        }
        public void ParseInvalidValue()
        {
            BoundedValueArgument <int> argument = new BoundedValueArgument <int>("value", "description", 1, 10);

            int i = 1;

            Assert.Throws <InvalidArgumentValueException>(() => argument.Parse(new[] { "/switch1", "3A", "1", "10", "x" }, ref i));
        }
        public void ValueOutOfBounds2()
        {
            BoundedValueArgument <int> argument = new BoundedValueArgument <int>("value", "description", -10, -1);

            int i = 0;

            Assert.Throws <InvalidArgumentValueException>(() => argument.Parse(new[] { "0" }, ref i));
        }
예제 #6
0
        public void ParseSingle()
        {
            BoundedValueArgument<int> argument = new BoundedValueArgument<int>("value", "description", 1, 10);

            int i = 1;
            var result = (ArgumentResult<int>)argument.Parse(new[] { "/switch1", "3", "1", "10", }, ref i);
            Assert.AreEqual(2, i);
            Assert.IsNotNull(result.Values);
            Assert.AreEqual(1, result.Values.Count);
            Assert.AreEqual(3, result.Values[0]);
        }
        public void ParseSingle()
        {
            BoundedValueArgument <int> argument = new BoundedValueArgument <int>("value", "description", 1, 10);

            int i      = 1;
            var result = (ArgumentResult <int>)argument.Parse(new[] { "/switch1", "3", "1", "10", }, ref i);

            Assert.AreEqual(2, i);
            Assert.IsNotNull(result.Values);
            Assert.AreEqual(1, result.Values.Count);
            Assert.AreEqual(3, result.Values[0]);
        }
예제 #8
0
        public void ParseMultiple2()
        {
            BoundedValueArgument<long> argument = new BoundedValueArgument<long>("value", "description", -10, -1) { AllowMultiple = true };

            int i = 1;
            var result = (ArgumentResult<long>)argument.Parse(new[] { "/switch1", "-3", "-1", "-10", }, ref i);
            Assert.AreEqual(4, i);
            Assert.IsNotNull(result.Values);
            Assert.AreEqual(3, result.Values.Count);
            Assert.AreEqual(-3, result.Values[0]);
            Assert.AreEqual(-1, result.Values[1]);
            Assert.AreEqual(-10, result.Values[2]);
        }
예제 #9
0
        public void ParseMultiple1()
        {
            BoundedValueArgument<int> argument = new BoundedValueArgument<int>("value", "description", 1, 10) { AllowMultiple = true };
            Assert.IsFalse(string.IsNullOrEmpty(argument.GetSyntax()));
            Assert.IsFalse(string.IsNullOrEmpty(argument.GetHelp()));

            int i = 1;
            var result = (ArgumentResult<int>)argument.Parse(new[] { "/switch1", "3", "1", "10", }, ref i);
            Assert.AreEqual(4, i);
            Assert.AreEqual(3, result.Values.Count);
            Assert.AreEqual(3, result.Values[0]);
            Assert.AreEqual(1, result.Values[1]);
            Assert.AreEqual(10, result.Values[2]);
        }
        public void ParseMultiple2()
        {
            BoundedValueArgument <long> argument = new BoundedValueArgument <long>("value", "description", -10, -1)
            {
                AllowMultiple = true
            };

            int i      = 1;
            var result = (ArgumentResult <long>)argument.Parse(new[] { "/switch1", "-3", "-1", "-10", }, ref i);

            Assert.AreEqual(4, i);
            Assert.IsNotNull(result.Values);
            Assert.AreEqual(3, result.Values.Count);
            Assert.AreEqual(-3, result.Values[0]);
            Assert.AreEqual(-1, result.Values[1]);
            Assert.AreEqual(-10, result.Values[2]);
        }
        public void ParseMultiple1()
        {
            BoundedValueArgument <int> argument = new BoundedValueArgument <int>("value", "description", 1, 10)
            {
                AllowMultiple = true
            };

            Assert.IsFalse(string.IsNullOrEmpty(argument.GetSyntax()));
            Assert.IsFalse(string.IsNullOrEmpty(argument.GetHelp()));

            int i      = 1;
            var result = (ArgumentResult <int>)argument.Parse(new[] { "/switch1", "3", "1", "10", }, ref i);

            Assert.AreEqual(4, i);
            Assert.AreEqual(3, result.Values.Count);
            Assert.AreEqual(3, result.Values[0]);
            Assert.AreEqual(1, result.Values[1]);
            Assert.AreEqual(10, result.Values[2]);
        }