Example #1
0
        public void ParseElement(string text, string expected)
        {
            var item   = ParsedDefinition.ParseItems(text);
            var result = string.Join("/", item);

            Assert.Equal(expected, result);
        }
Example #2
0
        public void CheckForOptionalValues(bool optional1, bool optional2, bool expectException)
        {
            var definitionItems = new List <ParsedItem>()
            {
                new ParsedValueOption()
                {
                    ValueName  = "value1",
                    IsOptional = optional1
                },
                new ParsedValueOption()
                {
                    ValueName  = "value1",
                    IsOptional = optional2
                },
            };

            if (expectException)
            {
                Assert.Throws <ParseError>(() => ParsedDefinition.CheckForOptionalValues(definitionItems, ""));
            }
            else
            {
                ParsedDefinition.CheckForOptionalValues(definitionItems, "");
            }
        }
Example #3
0
        public void SplitToSimpleItems(string text, string expected)
        {
            var item   = ParsedDefinition.SplitToSimpleItems(text);
            var result = string.Join("/", item);

            Assert.Equal(expected, result);
        }
Example #4
0
        public static void InlineGenerate(InlineGenerateOptions options, IConsoleWriter console)
        {
            var cliDefinition = new CliDefinitionList()
            {
                Lines = new List <string>()
                {
                    "using CommandLine;",
                    "using System;",
                    "using System.Collections.Generic;"
                },
                Definitions = new List <CliDefinition>()
                {
                    new CliDefinition()
                    {
                        Namespace  = options.Namespace ?? "CommandLineOptions",
                        ClassName  = options.Class ?? "CommandLineOptions",
                        Definition = options.Definition
                    }
                }
            };

            try
            {
                var definition       = cliDefinition.Definitions.First();
                var parsedDefinition = ParsedDefinition.Parse(definition);
                definition.Items = parsedDefinition.ParsedItems.Select(it => it.ToDefinitionItem()).ToList();
            }
            catch { }
            WriteFile(cliDefinition, "inlineCli.json");
            Generate(cliDefinition, options.OutputPath, options.OverwriteFiles, options.Verbose, console);
        }
Example #5
0
        public void IsSwitchScalarVerbValue(string text, bool isSwitch, bool isScalar, bool isVerb, bool isValue)
        {
            var result = ParsedDefinition.ParseItems(text).First();

            Assert.Equal(isSwitch, result is ParsedSwitch);
            Assert.Equal(isScalar, result is ParsedScalar);
            Assert.Equal(isVerb, result is ParsedVerb);
            Assert.Equal(isValue, result is ParsedValueOption);
        }
Example #6
0
        public void IsSame(bool same, string itemText, string verb, string option, string valueName)
        {
            var definitionItem = new CliDefinitionItem()
            {
                Verb      = verb,
                ValueName = valueName,
                Option    = option
            };
            var result = ParsedDefinition.ParseItems(itemText).First();

            Assert.Equal(same, result.SameItem(definitionItem));
        }
Example #7
0
        public void CheckForLostVerbs_Exception(string text1, string text2)
        {
            var stringSegments = new List <string>();

            if (text1 != null)
            {
                stringSegments.Add(text1);
            }
            if (text2 != null)
            {
                stringSegments.Add(text2);
            }
            var parsedElements = stringSegments.Select(x => ParsedDefinition.ParseItems(x)).SelectMany(x => x).ToList();

            Assert.ThrowsAny <Exception>(() => ParsedDefinition.CheckForLostVerbs(parsedElements, "something"));
        }
Example #8
0
        public void GetOptionParameters()
        {
            var definitionItems = new List <ParsedItem>()
            {
                new ParsedSwitch()
                {
                    Name = "switch"
                },
                new ParsedValueOption()
                {
                    ValueName = "value1"
                },
            };
            var list = ParsedDefinition.GetOptionParameters(definitionItems);

            Assert.Single(list);
            var item = list.First() as ParsedScalar;

            Assert.NotNull(item);
            Assert.Equal("switch", item.Name);
            Assert.Equal("value1", item.ValueName);
        }
Example #9
0
 public void ParseElement_Exception(string text)
 {
     Assert.ThrowsAny <Exception>(() => ParsedDefinition.ParseItems(text));
 }
Example #10
0
 public void SplitToSimpleItems_Exception(string text)
 {
     Assert.ThrowsAny <Exception>(() => ParsedDefinition.SplitToSimpleItems(text));
 }