public void Parse_WithFactoryAndGitVerbsCommitAndNoMessage_ParsesCommitVerb() { const string expected = "My default message"; var opt = new OptionsWithGitVerbs(); var factory = new SimpleVerbfactory { { () => new GitAdd() }, { typeof(GitCommit), () => new GitCommit("My default message") } }; var parser = new CliParser<OptionsWithGitVerbs>( opt, ParserOptions.None, new AutomaticHelpGenerator<OptionsWithGitVerbs>(), factory); parser.Parse("commit".Split()); var actual = opt.Commit.CommitMessage; Assert.AreEqual(expected, actual); }
public void Parse_WithFactoryAndGitVerbsAdd_ParsesAddVerb() { string[] expected = { "myfile.txt", "otherfile.txt" }; var opt = new OptionsWithGitVerbs(); var factory = new SimpleVerbfactory { { () => new GitAdd() }, { typeof(GitCommit), () => new GitCommit("My default message") } }; var parser = new CliParser<OptionsWithGitVerbs>( opt, ParserOptions.None, new AutomaticHelpGenerator<OptionsWithGitVerbs>(), factory); parser.Parse("add myfile.txt otherfile.txt".Split()); var actual = opt.Add.Files.ToList(); CollectionAssert.AreEqual(expected, actual); }
public void ParseDate_WithSpanishLocaleAndSpanishDateFormat_ParsesDateCorrectly() { using (LocalizationExtensions.WithUiCulture(new CultureInfo("es-ES"))) { // Arrange var expected = new DateTime(2016, 3, 12); var opt = new LocalizationOptions(); var parser = new CliParser<LocalizationOptions>(opt); var help = new AutomaticHelpGenerator<LocalizationOptions>(); // Act parser.Parse("-s 12/3/2016 file.txt".Split()); // Assert Assert.AreEqual(expected, opt.StartDate); } }
public void NamedArgument_WithLowerBoundCountEqualsZero_ParsesNoArguments() { var opts = new NamedArgumentLowerBoundCountEqualsZero(); var arguments = new string[0]; var parser = new CliParser<NamedArgumentLowerBoundCountEqualsZero>(opts); parser.Parse(arguments); Assert.AreEqual(0, opts.Args.Count); }
public void NamedArgument_WithLowerBoundCountEqualsZero_ParsesAllArguments() { var opts = new NamedArgumentLowerBoundCountEqualsZero(); var arguments = new[] { "-s", "first", "second" }; var parser = new CliParser<NamedArgumentLowerBoundCountEqualsZero>(opts); parser.Parse(arguments); Assert.AreEqual(2, opts.Args.Count); }
public void Parse_WithFactoryAndVerbHavingNoDefaultConstructor_ParsesVerb() { const string expected = "myfile.txt"; var opt = new OptionsWithNoDefaultConstructor(); var factory = new SimpleVerbfactory { { typeof(VerbWithNoDefaultConstructor), () => new VerbWithNoDefaultConstructor("default.txt") } }; var parser = new CliParser<OptionsWithNoDefaultConstructor>( opt, ParserOptions.None, new AutomaticHelpGenerator<OptionsWithNoDefaultConstructor>(), factory); parser.Parse("add myfile.txt".Split()); Assert.AreEqual(expected, opt.AddInfo.Filename); }
public void Parse_WithVerbHavingDefaultConstructor_ParsesVerb() { const string expected = "myfile.txt"; var opt = new OptionsWithVerbDefaultConstructor(); var parser = new CliParser<OptionsWithVerbDefaultConstructor>(opt); parser.Parse("add myfile.txt".Split()); Assert.AreEqual(expected, opt.AddInfo.Filename); }
public void ParseNumber_WithMexicanLocaleAndMexicanNumberFormat_ParsesNumberCorrectly() { using (LocalizationExtensions.WithUiCulture(new CultureInfo("es-MX"))) { // Arrange var expected = 2.3; var opt = new LocalizationOptions(); var parser = new CliParser<LocalizationOptions>(opt); var help = new AutomaticHelpGenerator<LocalizationOptions>(); // Act parser.Parse("-c 2.3 file.txt".Split()); // Assert Assert.AreEqual(expected, opt.MyCounter); } }
public void CaseFolding_ParseShortArgWithWrongCaseWhenCaseInsensitive_CorrectlyParsesArgs() { var parser = new CliParser<CaseFoldingOptions>( new CaseFoldingOptions(), ParserOptions.CaseInsensitive); parser.Parse("-N timothy".Split()); }
public void CaseFolding_ParseLongArgPrefixWithWrongCaseWhenCaseInsensitiveAndPartialMatch_CorrectlyParsesArgs() { var parser = new CliParser<CaseFoldingOptions>( new CaseFoldingOptions(), ParserOptions.CaseInsensitive | ParserOptions.NamedPartialMatch); parser.Parse("--Na timothy".Split()); }
public void PositionalArgument_WithMultiplePositionalArgumentsAndLowerBoundCountEqualsZero_ParsesOtherArguments() { var opts = new PositionalArgumentUnitTest.MultiplePositionalArgumentLowerBoundCountEqualsZero(); var arguments = new[] { "fixed" }; var parser = new CliParser<PositionalArgumentUnitTest.MultiplePositionalArgumentLowerBoundCountEqualsZero>(opts); parser.Parse(arguments); Assert.AreEqual(0, opts.Args.Count); }
public void PositionalArgument_WithLowerBoundCountEqualsZero_ParsesNoArguments() { var opts = new PositionalArgumentUnitTest.PositionalArgumentLowerBoundCountEqualsZero(); var arguments = new string[0]; var parser = new CliParser<PositionalArgumentUnitTest.PositionalArgumentLowerBoundCountEqualsZero>(opts); parser.Parse(arguments); Assert.AreEqual(0, opts.Args.Count); }
public void PositionalArgument_WithLowerBoundCountEqualsZero_ParsesAllArguments() { var opts = new PositionalArgumentUnitTest.PositionalArgumentLowerBoundCountEqualsZero(); var arguments = new[] { "first", "second" }; var parser = new CliParser<PositionalArgumentUnitTest.PositionalArgumentLowerBoundCountEqualsZero>(opts); parser.Parse(arguments); Assert.AreEqual(2, opts.Args.Count); }