Exemple #1
0
        public void ParseJoinedMultiplePrefixes()
        {
            OptTable optTable = new OptTableBuilder()
                                .AddJoined(1, new[] { "-", "--", "/" }, "opt=")
                                .CreateTable();
            var args = new[] { "--opt=value1", "/opt=value2", "-opt=value3" };

            IArgumentList al = optTable.ParseArgs(args, out var missing);

            Assert.Equal(0, missing.ArgIndex);
            Assert.Equal(0, missing.ArgCount);
            Assert.Equal(3, al.Count);
            Assert.Equal(optTable.MakeArg(1, "--opt=", 0, "value1"), al[0], argComparer);
            Assert.Equal(optTable.MakeArg(1, "/opt=", 1, "value2"), al[1], argComparer);
            Assert.Equal(optTable.MakeArg(1, "-opt=", 2, "value3"), al[2], argComparer);
        }
Exemple #2
0
        public void ParseMixed()
        {
            OptTable optTable = new OptTableBuilder()
                                .AddFlag(1, "-", "a")
                                .AddJoined(2, "-", "a=")
                                .CreateTable();
            var args = new[] { "-a=123", "-a" };

            IArgumentList al = optTable.ParseArgs(args, out var missing);

            Assert.Equal(0, missing.ArgIndex);
            Assert.Equal(0, missing.ArgCount);
            Assert.Equal(2, al.Count);
            Assert.Equal(optTable.MakeArg(2, "-a=", 0, "123"), al[0], argComparer);
            Assert.Equal(optTable.MakeArg(1, "-a", 1), al[1], argComparer);
        }
Exemple #3
0
        public void ParseFlagMultiplePrefixes()
        {
            OptTable optTable = new OptTableBuilder()
                                .AddFlag(1, new[] { "-", "--", "/" }, "opt")
                                .CreateTable();
            var args = new[] { "--opt", "/opt", "-opt" };

            IArgumentList al = optTable.ParseArgs(args, out var missing);

            Assert.Equal(0, missing.ArgIndex);
            Assert.Equal(0, missing.ArgCount);
            Assert.Equal(3, al.Count);
            Assert.Equal(optTable.MakeArg(1, "--opt", 0), al[0], argComparer);
            Assert.Equal(optTable.MakeArg(1, "/opt", 1), al[1], argComparer);
            Assert.Equal(optTable.MakeArg(1, "-opt", 2), al[2], argComparer);
        }
Exemple #4
0
        public void ParseJoinedMultiple()
        {
            OptTable optTable = new OptTableBuilder()
                                .AddJoined(1, "-", "aaaa")
                                .AddJoined(2, new[] { "-", "--" }, "aaa")
                                .AddJoined(3, "-", "a")
                                .AddJoined(4, "--", "aa")
                                .CreateTable();
            var args = new[] { "--aaa1", "--aa2", "-aaaaa", "-a4", "-aaa5" };

            IArgumentList al = optTable.ParseArgs(args, out var missing);

            Assert.Equal(0, missing.ArgIndex);
            Assert.Equal(0, missing.ArgCount);
            Assert.Equal(5, al.Count);
            Assert.Equal(optTable.MakeArg(2, "--aaa", 0, "1"), al[0], argComparer);
            Assert.Equal(optTable.MakeArg(4, "--aa", 1, "2"), al[1], argComparer);
            Assert.Equal(optTable.MakeArg(1, "-aaaa", 2, "a"), al[2], argComparer);
            Assert.Equal(optTable.MakeArg(3, "-a", 3, "4"), al[3], argComparer);
            Assert.Equal(optTable.MakeArg(2, "-aaa", 4, "5"), al[4], argComparer);
        }
Exemple #5
0
        public void ParseFlagMultiple()
        {
            OptTable optTable = new OptTableBuilder()
                                .AddFlag(1, "-", "aaaa")
                                .AddFlag(2, new[] { "-", "--" }, "aaa")
                                .AddFlag(3, "-", "a")
                                .AddFlag(4, "--", "aa")
                                .CreateTable();
            var args = new[] { "--aaa", "--aa", "-aaaa", "-a", "-aaa" };

            IArgumentList al = optTable.ParseArgs(args, out MissingArgs missing);

            Assert.Equal(0, missing.ArgIndex);
            Assert.Equal(0, missing.ArgCount);
            Assert.Equal(5, al.Count);
            Assert.Equal(optTable.MakeArg(2, "--aaa", 0), al[0], argComparer);
            Assert.Equal(optTable.MakeArg(4, "--aa", 1), al[1], argComparer);
            Assert.Equal(optTable.MakeArg(1, "-aaaa", 2), al[2], argComparer);
            Assert.Equal(optTable.MakeArg(3, "-a", 3), al[3], argComparer);
            Assert.Equal(optTable.MakeArg(2, "-aaa", 4), al[4], argComparer);
        }
Exemple #6
0
        public void ParseRemainingArgs(string prefix, string name)
        {
            OptTable optTable = new OptTableBuilder()
                                .AddRemainingArgs(1, prefix, name)
                                .CreateTable();
            var args = new[] { prefix + name, prefix + name, "value", "-flag" };

            IArgumentList al = optTable.ParseArgs(args, out var missing);

            Assert.Equal(0, missing.ArgIndex);
            Assert.Equal(0, missing.ArgCount);
            Assert.Equal(1, al.Count);
            Assert.Equal(optTable.MakeArg(1, prefix + name, 0, prefix + name, "value", "-flag"), al[0], argComparer);
        }
Exemple #7
0
        public void ParseMultiArg(string prefix, string name, string[] extraArgs)
        {
            OptTable optTable = new OptTableBuilder()
                                .AddMultiArg(1, prefix, name, extraArgs.Length)
                                .CreateTable();
            var args = new[] { prefix + name }.Concat(extraArgs).ToArray();

            IArgumentList al = optTable.ParseArgs(args, out var missing);

            Assert.Equal(0, missing.ArgIndex);
            Assert.Equal(0, missing.ArgCount);
            Assert.Equal(1, al.Count);
            Assert.Equal(optTable.MakeArg(1, prefix + name, 0, extraArgs), al[0], argComparer);
        }
Exemple #8
0
        public void ParseSeparateMissingArg()
        {
            OptTable optTable = new OptTableBuilder()
                                .AddSeparate(1, "-", "opt")
                                .CreateTable();
            var args = new[] { "-opt", "v1", "-opt" };

            IArgumentList al = optTable.ParseArgs(args, out var missing);

            Assert.Equal(2, missing.ArgIndex);
            Assert.Equal(1, missing.ArgCount);
            Assert.Equal(1, al.Count);
            Assert.Equal(optTable.MakeArg(1, "-opt", 0, "v1"), al[0], argComparer);
        }
Exemple #9
0
        public void ParseSeparate(string prefix, string name, string arg)
        {
            OptTable optTable = new OptTableBuilder()
                                .AddSeparate(1, prefix, name)
                                .CreateTable();
            var args = new[] { prefix + name, arg };

            IArgumentList al = optTable.ParseArgs(args, out var missing);

            Assert.Equal(0, missing.ArgIndex);
            Assert.Equal(0, missing.ArgCount);
            Assert.Equal(1, al.Count);
            Assert.Equal(optTable.MakeArg(1, prefix + name, 0, arg), al[0], argComparer);
        }