Example #1
0
        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");
        }
Example #2
0
        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");
        }
Example #3
0
        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");
        }
Example #4
0
        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");
        }
Example #5
0
        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");
        }
Example #6
0
        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");
        }
Example #7
0
        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();
        }
Example #8
0
        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();
        }
Example #9
0
        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();
        }
Example #10
0
        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();
        }
Example #11
0
        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();
        }
Example #12
0
        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();
        }
Example #13
0
        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();
        }
Example #14
0
        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");
        }
Example #15
0
        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();
        }
Example #16
0
        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");
        }
Example #17
0
        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");
        }