public void ParseElement(string text, string expected) { var item = ParsedDefinition.ParseItems(text); var result = string.Join("/", item); Assert.Equal(expected, result); }
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, ""); } }
public void SplitToSimpleItems(string text, string expected) { var item = ParsedDefinition.SplitToSimpleItems(text); var result = string.Join("/", item); Assert.Equal(expected, result); }
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); }
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); }
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)); }
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")); }
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); }
public void ParseElement_Exception(string text) { Assert.ThrowsAny <Exception>(() => ParsedDefinition.ParseItems(text)); }
public void SplitToSimpleItems_Exception(string text) { Assert.ThrowsAny <Exception>(() => ParsedDefinition.SplitToSimpleItems(text)); }