public void FailedVerbParsingPrintsParticularHelpScreen() { var options = new OptionsWithVerbs(); var testWriter = new StringWriter(); Result = Parser.ParseArguments(new string[] {"clone", "--no_hardlinks"}, options, testWriter); ResultShouldBeFalse(); var helpText = testWriter.ToString(); helpText.Should().Equal("help for: clone"); }
public void FailedParsingPrintsHelpIndex() { var options = new OptionsWithVerbs(); var testWriter = new StringWriter(); Result = Parser.ParseArguments(new string[] {}, options, testWriter); ResultShouldBeFalse(); var helpText = testWriter.ToString(); helpText.Should().Equal("verbs help index"); }
public void ParseVerbsCreateInstance() { var options = new OptionsWithVerbs(); options.AddVerb.Should().Be.Null(); Result = Parser.ParseArguments(new string[] {"add", "-p", "untracked.bin"} , options); ResultShouldBeTrue(); // Parser has built instance for us options.AddVerb.Should().Not.Be.Null(); options.AddVerb.CreationProof.Should().Be.Null(); options.AddVerb.Patch.Should().Be.True(); options.AddVerb.FileName[0].Should().Equal("untracked.bin"); }
public void FailedVerbParsingPrintsParticularHelpScreen() { var options = new OptionsWithVerbs(); var testWriter = new StringWriter(); Result = Parser.ParseArguments(new string[] {"clone", "--no_hardlinks"}, options, testWriter); ResultShouldBeFalse(); Parser.WasVerbOptionInvoked("add").Should().Be.False(); Parser.WasVerbOptionInvoked("commit").Should().Be.False(); // The following returns true because also if the parser fail 'clone' was invoked. Parser.WasVerbOptionInvoked("clone").Should().Be.True(); var helpText = testWriter.ToString(); helpText.Should().Equal("help for: clone"); }
public void Failed_parsing_prints_help_index() { var options = new OptionsWithVerbs(); var testWriter = new StringWriter(); var parser = new Parser(); var result = parser.ParseArguments(new string[] {}, options, testWriter); result.Should().BeFalse(); parser.WasVerbOptionInvoked("add").Should().BeFalse(); parser.WasVerbOptionInvoked("commit").Should().BeFalse(); parser.WasVerbOptionInvoked("clone").Should().BeFalse(); var helpText = testWriter.ToString(); helpText.Should().Be("verbs help index"); }
public void Failed_verb_parsing_prints_particular_help_screen() { var options = new OptionsWithVerbs(); var testWriter = new StringWriter(); var parser = new Parser(); var result = parser.ParseArguments(new string[] {"clone", "--no_hardlinks"}, options, testWriter); result.Should().BeFalse(); parser.WasVerbOptionInvoked("add").Should().BeFalse(); parser.WasVerbOptionInvoked("commit").Should().BeFalse(); // The following returns true because also if the parser fail 'clone' was invoked. parser.WasVerbOptionInvoked("clone").Should().BeTrue(); var helpText = testWriter.ToString(); helpText.Should().Be("help for: clone"); }
public void Was_verb_option_invoked_returns_false_with_ordinary_options() { var options = new OptionsWithVerbs(); var parser = new Parser(); var result = parser.ParseArguments(new string[] {"commit", "--amend"}, options); result.Should().BeTrue(); parser.WasVerbOptionInvoked("--commit").Should().BeFalse(); parser.WasVerbOptionInvoked("-commit").Should().BeFalse(); // <- pure fantasy parser.WasVerbOptionInvoked("-c").Should().BeFalse(); parser.WasVerbOptionInvoked("---commit").Should().BeFalse(); // <- pure fantasy parser.WasVerbOptionInvoked("--amend").Should().BeFalse(); parser.WasVerbOptionInvoked("-a").Should().BeFalse(); }
public void Was_verb_option_invoked_returns_false_with_null_or_empty_verb() { var options = new OptionsWithVerbs(); var parser = new Parser(); var result = parser.ParseArguments(new string[] {"commit", "--amend"}, options); result.Should().BeTrue(); parser.WasVerbOptionInvoked(null).Should().BeFalse(); parser.WasVerbOptionInvoked("").Should().BeFalse(); }
public void Was_verb_option_invoked_returns_false_with_empty_arguments() { var options = new OptionsWithVerbs(); var parser = new Parser(); var result = parser.ParseArguments(new string[] {}, options); result.Should().BeFalse(); parser.WasVerbOptionInvoked("add").Should().BeFalse(); parser.WasVerbOptionInvoked("commit").Should().BeFalse(); parser.WasVerbOptionInvoked("clone").Should().BeFalse(); }
public void Parse_verbs_using_instance() { var proof = new Random().Next(int.MaxValue); var options = new OptionsWithVerbs(); options.CommitVerb.Should().NotBeNull(); options.CommitVerb.CreationProof = proof; var parser = new Parser(); var result = parser.ParseArguments(new string[] { "commit", "--amend" }, options); result.Should().BeTrue(); parser.WasVerbOptionInvoked("add").Should().BeFalse(); parser.WasVerbOptionInvoked("commit").Should().BeTrue(); parser.WasVerbOptionInvoked("clone").Should().BeFalse(); // Check if the instance is the one provider by us (not by the parser) options.CommitVerb.CreationProof.Should().Be(proof); options.CommitVerb.Amend.Should().BeTrue(); }
public void WasVerbOptionInvokedReturnsFalseWithNullOrEmptyVerb() { var options = new OptionsWithVerbs(); Result = Parser.ParseArguments(new string[] {"commit", "--amend"}, options); ResultShouldBeTrue(); Parser.WasVerbOptionInvoked(null).Should().Be.False(); Parser.WasVerbOptionInvoked("").Should().Be.False(); }
public void WasVerbOptionInvokedReturnsFalseWithEmptyArguments() { var options = new OptionsWithVerbs(); Result = Parser.ParseArguments(new string[] {}, options); ResultShouldBeFalse(); Parser.WasVerbOptionInvoked("add").Should().Be.False(); Parser.WasVerbOptionInvoked("commit").Should().Be.False(); Parser.WasVerbOptionInvoked("clone").Should().Be.False(); }
public void ParseVerbsUsingInstance() { var proof = new Random().Next(int.MaxValue); var options = new OptionsWithVerbs(); options.CommitVerb.Should().Not.Be.Null(); options.CommitVerb.CreationProof = proof; Result = Parser.ParseArguments(new string[] { "commit", "--amend" }, options); ResultShouldBeTrue(); Parser.WasVerbOptionInvoked("add").Should().Be.False(); Parser.WasVerbOptionInvoked("commit").Should().Be.True(); Parser.WasVerbOptionInvoked("clone").Should().Be.False(); // Check if the instance is the one provider by us (not by the parser) options.CommitVerb.CreationProof.Should().Equal(proof); options.CommitVerb.Amend.Should().Be.True(); }
public void Parse_strict_bad_input_fails_and_exits_with_verbs_when_get_usage_is_defined() { var options = new OptionsWithVerbs(); var testWriter = new StringWriter(); ReflectionUtil.AssemblyFromWhichToPullInformation = Assembly.GetExecutingAssembly(); var parser = new Parser(); var result = parser.ParseArgumentsStrict(new string[] { "bad", "input" }, options, testWriter); result.Should().BeFalse(); var helpText = testWriter.ToString(); Console.WriteLine(helpText); var lines = helpText.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); // Did we really produced all help? lines.Should().HaveCount(n => n == 1); // Verify just significant output lines[0].Trim().Should().Be("verbs help index"); }
public void WasVerbOptionInvokedReturnsFalseWithOrdinaryOptions() { var options = new OptionsWithVerbs(); Result = Parser.ParseArguments(new string[] {"commit", "--amend"}, options); ResultShouldBeTrue(); Parser.WasVerbOptionInvoked("--commit").Should().Be.False(); Parser.WasVerbOptionInvoked("-commit").Should().Be.False(); // <- pure fantasy Parser.WasVerbOptionInvoked("-c").Should().Be.False(); Parser.WasVerbOptionInvoked("---commit").Should().Be.False(); // <- pure fantasy Parser.WasVerbOptionInvoked("--amend").Should().Be.False(); Parser.WasVerbOptionInvoked("-a").Should().Be.False(); }
public void Parse_verbs_create_instance() { var options = new OptionsWithVerbs(); options.AddVerb.Should().BeNull(); var parser = new Parser(); var result = parser.ParseArguments(new string[] {"add", "-p", "untracked.bin"} , options); result.Should().BeTrue(); parser.WasVerbOptionInvoked("add").Should().BeTrue(); parser.WasVerbOptionInvoked("commit").Should().BeFalse(); parser.WasVerbOptionInvoked("clone").Should().BeFalse(); // Parser has built instance for us options.AddVerb.Should().NotBeNull(); options.AddVerb.CreationProof.Should().NotHaveValue(); options.AddVerb.Patch.Should().BeTrue(); options.AddVerb.FileName[0].Should().Be("untracked.bin"); }
public void ParseStrictBadInputFailsAndExits_Verbs_GetUsageDefined() { var options = new OptionsWithVerbs(); var testWriter = new StringWriter(); Result = Parser.ParseArgumentsStrict(new string[] { "bad", "input" }, options, testWriter); ResultShouldBeFalse(); var helpText = testWriter.ToString(); Console.WriteLine(helpText); var lines = helpText.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); // Did we really produced all help? lines.Should().Count.Exactly(1); // Verify just significant output lines[0].Trim().Should().Equal("verbs help index"); }