public void ShouldParseMultipleUndefinedOptionIfAllowed() { var builder = new CmdLineInputDefinitionBuilder(); var settings = new CmdLineSettings { UndefinedOptionsPolicy = UndefinedOptionsPolicy.AllowMultipleInstances }; var parser = new CmdLineParser(builder.Definition, settings); var input = parser.Parse("-name:value1.1;value1.2", "-name:value2.1;value2.2"); input.UndefinedOptions.GetAll("name").ShouldBe(new[] { new[] { "value1.1", "value1.2" }, new[] { "value2.1", "value2.2" } }); }
public void ShouldParseMissingOptionalArg() { var builder = new CmdLineInputDefinitionBuilder(); builder.Arg("name").IsOptional(); var settings = new CmdLineSettings(); var parser = new CmdLineParser(builder.Definition, settings); parser.Parse(new string[0]); }
public void ShouldParseFlagOption() { var builder = new CmdLineInputDefinitionBuilder(); builder.Option("name"); var settings = new CmdLineSettings(); var parser = new CmdLineParser(builder.Definition, settings); var input = parser.Parse(new[] { "-name" }); input.Options.Contains("name").ShouldBe(true); }
public void ShouldParseOptionsWithSeparatedFormat() { var builder = new CmdLineInputDefinitionBuilder(); builder.Option("name").Value("value"); var settings = new CmdLineSettings { OptionValueFormat = OptionValueFormat.Separated }; var parser = new CmdLineParser(builder.Definition, settings); var input = parser.Parse("-name", "foo"); input.Options.GetSingle("name").GetSingle("value").ShouldBe("foo"); }
public void ShouldParseArg() { var builder = new CmdLineInputDefinitionBuilder(); builder.Arg("name"); var settings = new CmdLineSettings(); var parser = new CmdLineParser(builder.Definition, settings); var input = parser.Parse(new[] { "value" }); input.Args.GetSingle("name").ShouldBe("value"); }
public void ShouldParseOptionWithParamsValue() { var builder = new CmdLineInputDefinitionBuilder(); builder.Option("name") .Value("value", x => x.IsParams()); var settings = new CmdLineSettings(); var parser = new CmdLineParser(builder.Definition, settings); var input = parser.Parse("-name:foo;bar"); input.Options.GetSingle("name").GetAll("value").ShouldBe(new[] { "foo", "bar" }); }
public void ShouldHaveProperDefaultSettings() { var settings = new CmdLineSettings(); settings.OptionValueFormat.ShouldBe(OptionValueFormat.Connected); settings.OptionNameValueSeparator.ShouldBe(':'); settings.OptionPrefixes.ShouldBe(new[] { "-", "/" }); settings.OptionValueSeparator.ShouldBe(';'); settings.UndefinedOptionsPolicy.ShouldBe(UndefinedOptionsPolicy.NotAllowed); }
public void ShouldParseMultipleInstancesOfAllowMultipleOption() { var builder = new CmdLineInputDefinitionBuilder(); builder.Option("name") .AllowMultiple() .Value("value"); var settings = new CmdLineSettings(); var parser = new CmdLineParser(builder.Definition, settings); var input = parser.Parse("-name:foo", "-name:bar"); var options = input.Options.GetAll("name"); options.Length.ShouldBe(2); options[0].GetSingle("value").ShouldBe("foo"); options[1].GetSingle("value").ShouldBe("bar"); }
protected override int ExecuteCommand(string program, string[] route, string[] args, CmdLineSettings settings) { throw new System.NotImplementedException(); }
protected override void ShowHelp(string program, string[] route, CmdLineSettings settings) { }
public void ShouldParseUndefinedOptionIfAllowed() { var builder = new CmdLineInputDefinitionBuilder(); var settings = new CmdLineSettings { UndefinedOptionsPolicy = UndefinedOptionsPolicy.AllowSingleInstance }; var parser = new CmdLineParser(builder.Definition, settings); var input = parser.Parse("-name:value1;value2"); input.UndefinedOptions.GetSingle("name").ShouldBe(new[] { "value1", "value2" }); }
public void ShouldThrowIfMultipleUndefinedOptionsAreProvidedButNotAllowed() { var builder = new CmdLineInputDefinitionBuilder(); var settings = new CmdLineSettings { UndefinedOptionsPolicy = UndefinedOptionsPolicy.AllowSingleInstance }; var parser = new CmdLineParser(builder.Definition, settings); Should.Throw<ParserException>(() => parser.Parse("-name", "-name")).Message.ShouldBe("Option 'name' is provided more than once."); var input = parser.Parse("-name:value1;value2"); input.UndefinedOptions.GetSingle("name").ShouldBe(new[] { "value1", "value2" }); }
public void ShouldParseParamsArg() { var builder = new CmdLineInputDefinitionBuilder(); builder.Arg("name").IsParams(); var settings = new CmdLineSettings(); var parser = new CmdLineParser(builder.Definition, settings); var input = parser.Parse(new[] { "value1", "value2" }); input.Args.GetAll("name").ShouldBe(new[] { "value1", "value2" }); }
public void ShouldThrowIfRequiredArgIsntProvided() { var builder = new CmdLineInputDefinitionBuilder(); builder.Arg("name"); var settings = new CmdLineSettings(); var parser = new CmdLineParser(builder.Definition, settings); Should.Throw<Exception>(() => parser.Parse(new string[0])); }
public void ShouldThrowIfRequiredOptionValueIsntProvided() { var builder = new CmdLineInputDefinitionBuilder(); builder.Option("name").IsRequired().Value("value"); var settings = new CmdLineSettings(); var parser = new CmdLineParser(builder.Definition, settings); Should.Throw<ParserException>(() => parser.Parse("-name")); }
public void ShouldThrowIfUndefinedOptionIsProvidedButNotAllowed() { var builder = new CmdLineInputDefinitionBuilder(); var settings = new CmdLineSettings(); var parser = new CmdLineParser(builder.Definition, settings); Should.Throw<ParserException>(() => parser.Parse("-foobar")).Message.ShouldBe("Unknown option 'foobar'."); }
public void ShouldThrowIfFlagOptionHasValue() { var builder = new CmdLineInputDefinitionBuilder(); builder.Option("name"); var settings = new CmdLineSettings(); var parser = new CmdLineParser(builder.Definition, settings); Should.Throw<ParserException>(() => parser.Parse(new[] { "-name:value" })); }