public void should_accept_null_description()
        {
            ArgsParser parser = new ArgsParserBuilder()
                                .BeginCommand("valid_symbol", null).EndCommand()
                                .Build();

            ArgsParsingResult result = parser.Parse(new [] { "valid_symbol" });

            Assert.Equal(string.Empty, result.Command.Description);
        }
        public void should_not_single_lined_the_description(string multiLined, string expected)
        {
            ArgsParser parser = new ArgsParserBuilder()
                                .BeginCommand("command", multiLined).EndCommand()
                                .Build();

            ArgsParsingResult result = parser.Parse(new [] { "command" });

            Assert.Equal(expected, result.Command.Description);
        }
Esempio n. 3
0
        void should_parse_flag_successfully_by_abbrevation_when_only_define_abbrevation()
        {
            var parser = new ArgsParserBuilder().BeginDefaultCommand().AddFlagOption(null, 'f', "This is a flag").EndCommand().Build();
            ArgsParsingResult result = parser.Parse(new[] { "-f" });

            Assert.True(result.IsSuccess);
            Assert.Null(result.Error);
            Assert.True(result.GetFlagValue("-f"));
            Assert.False(result.GetFlagValue("--flag"));
        }
        public void should_get_command_symbol(string validSymbol)
        {
            ArgsParser parser = new ArgsParserBuilder()
                                .BeginCommand(validSymbol, string.Empty).EndCommand()
                                .Build();

            ArgsParsingResult result = parser.Parse(new [] { validSymbol });

            Assert.Equal(validSymbol, result.Command.Symbol);
        }
Esempio n. 5
0
        public void should_be_false_when_input_empty_string()
        {
            ArgsParser parser = new ArgsParserBuilder()
                                .AddFlagOption("flag", 'f', "This is a description")
                                .Build();

            ArgsParsingResult result = parser.Parse(new [] { "" });

            Assert.False(result.GetFlagValue("-f"));
        }
Esempio n. 6
0
        void should_throw_ArgumentException_when_get_flag_value_of_combined_flags()
        {
            var parser = new ArgsParserBuilder().BeginDefaultCommand().AddFlagOption("flag", 'f').AddFlagOption(null, 'v').EndCommand().Build();
            var result = parser.Parse(new[] { "-fv" });

            Assert.True(result.IsSuccess);
            Assert.True(result.GetFlagValue("-f"));
            Assert.True(result.GetFlagValue("-v"));
            Assert.Equal("flag is invalid", Assert.Throws <ArgumentException>(() => result.GetFlagValue("-fv")).Message);
        }
Esempio n. 7
0
        void should_parse_flag_successfully_by_full_name_when_only_define_full_name()
        {
            var parser = new ArgsParserBuilder().BeginDefaultCommand().AddFlagOption("_Fla26--182-g-", null, "This is a flag").EndCommand().Build();
            ArgsParsingResult result = parser.Parse(new[] { "--_Fla26--182-g-" });

            Assert.True(result.IsSuccess);
            Assert.Null(result.Error);
            Assert.False(result.GetFlagValue("-f"));
            Assert.True(result.GetFlagValue("--_Fla26--182-g-"));
        }
Esempio n. 8
0
        void result_command_should_be_null_when_parse_failed()
        {
            ArgsParser parser = new ArgsParserBuilder()
                                .BeginDefaultCommand().EndCommand()
                                .Build();
            ArgsParsingResult result = parser.Parse(new[] { "-f" });

            Assert.False(result.IsSuccess);
            Assert.Null(result.Command);
        }
        public void should_get_null_command_when_parese_failed()
        {
            ArgsParser parser = new ArgsParserBuilder()
                                .BeginDefaultCommand()
                                .EndCommand()
                                .Build();
            ArgsParsingResult result = parser.Parse(new [] { "--flat" });

            Assert.False(result.IsSuccess);
            Assert.Null(result.Command);
        }
        public void should_throw_exception_when_get_value_of_undefined_flag()
        {
            ArgsParser parser = new ArgsParserBuilder()
                                .BeginDefaultCommand()
                                .AddFlagOption("no-edit", 'n')
                                .EndCommand()
                                .Build();
            ArgsParsingResult argsParsingResult = parser.Parse(new [] { "--no-edit" });

            Assert.Throws <ArgumentException>(() => { argsParsingResult.GetFlagValue("--not-this-flag"); });
        }
        public void should_parse_success_when_parse_twice()
        {
            ArgsParser parser = new ArgsParserBuilder()
                                .BeginDefaultCommand()
                                .AddFlagOption("read", 'r')
                                .AddFlagOption("force", 'f')
                                .EndCommand()
                                .Build();

            ArgsParsingResult argsParsingResult = parser.Parse(new [] { "-r" });

            Assert.True(argsParsingResult.IsSuccess);
            Assert.True(argsParsingResult.GetFlagValue("--read"));
            Assert.False(argsParsingResult.GetFlagValue("-f"));

            parser.Parse(new [] { "-f" });
            Assert.True(argsParsingResult.IsSuccess);
            Assert.False(argsParsingResult.GetFlagValue("--read"));
            Assert.True(argsParsingResult.GetFlagValue("-f"));
        }
Esempio n. 12
0
        void command_symbol_of_parsing_result_should_be_null_when_parse_default_command_successfully()
        {
            ArgsParser parser = new ArgsParserBuilder()
                                .BeginDefaultCommand().EndCommand()
                                .Build();
            ArgsParsingResult result = parser.Parse(Array.Empty <string>());

            Assert.True(result.IsSuccess);
            Assert.NotNull(result.Command);
            Assert.Null(result.Command.Symbol);
        }
        public void should_parse_faild_when_input_string_neither_begin_with_single_dash_line_nor_double_dash_line()
        {
            ArgsParser parser = new ArgsParserBuilder()
                                .BeginDefaultCommand()
                                .AddFlagOption("flag", 'f')
                                .EndCommand()
                                .Build();
            var argsParsingResult = parser.Parse(new [] { "flag" });

            Assert.False(argsParsingResult.IsSuccess);
        }
        void should_return_empty_description_for_default_command()
        {
            ArgsParser parser = new ArgsParserBuilder()
                                .BeginDefaultCommand()
                                .AddFlagOption("flag", 'f', "flag description")
                                .EndCommand()
                                .Build();
            ArgsParsingResult result = parser.Parse(new[] { "--flag" });

            Assert.True(result.IsSuccess);
            Assert.Equal(string.Empty, result.Command.Description);
        }
Esempio n. 15
0
        public void should_get_empty_string_when_get_default_command_description()
        {
            ArgsParser parser = new ArgsParserBuilder()
                                .BeginDefaultCommand()
                                .AddFlagOption("flat", 'f')
                                .EndCommand()
                                .Build();
            ArgsParsingResult result = parser.Parse(new [] { "--flat" });

            Assert.True(result.IsSuccess);
            Assert.Equal(string.Empty, result.Command.Description);
        }
        public void should_throw_exception_when_get_value_after_parser_faild()
        {
            ArgsParser parser = new ArgsParserBuilder()
                                .BeginDefaultCommand()
                                .AddFlagOption("flag", 'f')
                                .EndCommand()
                                .Build();
            var argsParsingResult = parser.Parse(new [] { "flag" });

            Assert.False(argsParsingResult.IsSuccess);
            Assert.Throws <InvalidOperationException>(() => argsParsingResult.GetFlagValue("--flag"));
        }
        public void should_be_false_when_input_empty_string()
        {
            ArgsParser parser = new ArgsParserBuilder()
                                .BeginDefaultCommand()
                                .AddFlagOption("flag", 'f')
                                .EndCommand()
                                .Build();

            ArgsParsingResult result = parser.Parse(new [] { "" });

            Assert.False(result.GetFlagValue("-f"));
        }
Esempio n. 18
0
        public void should_get_correct_command_when_parese_success()
        {
            ArgsParser parser = new ArgsParserBuilder()
                                .BeginDefaultCommand()
                                .EndCommand()
                                .Build();
            ArgsParsingResult result = parser.Parse(Array.Empty <string>());

            Assert.True(result.IsSuccess);
            Assert.NotNull(result.Command);
            Assert.Null(result.Command.Symbol);
        }
        public void should_be_true_when_defined_abbr_form_flag_begin_with_single_dash_line()
        {
            ArgsParser parser = new ArgsParserBuilder()
                                .BeginDefaultCommand()
                                .AddFlagOption(null, 'f')
                                .EndCommand()
                                .Build();

            ArgsParsingResult result = parser.Parse(new [] { "-f" });

            Assert.True(result.GetFlagValue("-f"));
        }
        public void should_be_true_when_input_defined_full_form_flag()
        {
            ArgsParser parser = new ArgsParserBuilder()
                                .BeginDefaultCommand()
                                .AddFlagOption("flag-n", null)
                                .EndCommand()
                                .Build();

            ArgsParsingResult result = parser.Parse(new [] { "--flag-n" });

            Assert.True(result.GetFlagValue("--flag-n"));
        }
Esempio n. 21
0
        public void should_throw_if_mandatory_free_value_is_not_present()
        {
            ArgsParser parser = new ArgsParserBuilder()
                                .BeginDefaultCommand()
                                .AddFreeValue("name", string.Empty, true, DefaultTransformer.Instance)
                                .EndCommand()
                                .Build();

            ArgsParsingResult result = parser.Parse(new string[0]);

            result.AssertError(ArgsParsingErrorCode.RequiredFreeValueNotPresent, "<name>");
        }
        public void should_parse_faild_when_input_one_flag_twice()
        {
            ArgsParser parser = new ArgsParserBuilder()
                                .BeginDefaultCommand()
                                .AddFlagOption("flag", 'f')
                                .EndCommand()
                                .Build();
            var argsParsingResult = parser.Parse(new [] { "--flag", "-f" });

            Assert.False(argsParsingResult.IsSuccess);
            Assert.Equal(ParseErrorCode.DuplicateFlagsInArgs, argsParsingResult.Error.Code);
        }
Esempio n. 23
0
        public void should_create_valid_symbol(string symbol, char?abbr, string argument)
        {
            ArgsParser parser = new ArgsParserBuilder()
                                .BeginDefaultCommand()
                                .AddFlagOption(symbol, abbr, null)
                                .EndCommand()
                                .Build();

            ArgsParsingResult result = parser.Parse(new[] { argument });

            Assert.True(result.GetFlagValue(argument));
        }
        public void should_get_default_command_symbol()
        {
            ArgsParser parser = new ArgsParserBuilder()
                                .BeginDefaultCommand().EndCommand()
                                .Build();

            ArgsParsingResult result = parser.Parse(Array.Empty <string>());

            result.AssertSuccess();
            Assert.True(result.Command.IsDefaultCommand());
            Assert.Null(result.Command.Symbol);
        }
Esempio n. 25
0
        public void should_get_cannot_find_value_if_no_value_is_provided_for_key_value_option_for_specified_command()
        {
            ArgsParser parser = new ArgsParserBuilder()
                                .BeginCommand("command", string.Empty)
                                .AddOptionWithValue("key", 'k', string.Empty)
                                .EndCommand()
                                .Build();

            ArgsParsingResult result = parser.Parse(new [] { "command", "-k" });

            result.AssertError(ArgsParsingErrorCode.CannotFindValueForOption, "-k");
        }
        public void should_get_not_match_any_command_error_for_non_argument_if_default_command_is_not_set()
        {
            // start-(EoA)->no default command ? error

            var parser = new ArgsParserBuilder().Build();

            ArgsParsingResult result = parser.Parse(Array.Empty <string>());

            result.AssertError(
                ArgsParsingErrorCode.DoesNotMatchAnyCommand,
                "Unexpected end of arguments.");
        }
        public void should_parse_faild_with_detail_information_when_input_undefined_flag()
        {
            ArgsParser parser = new ArgsParserBuilder()
                                .BeginDefaultCommand()
                                .AddFlagOption("flag", 'f')
                                .EndCommand()
                                .Build();
            var argsParsingResult = parser.Parse(new [] { "--flat" });

            Assert.False(argsParsingResult.IsSuccess);
            Assert.Equal(ParseErrorCode.FreeValueNotSupported, argsParsingResult.Error.Code);
            Assert.Equal("--flat", argsParsingResult.Error.Trigger);
        }
        public void should_throw_exception_when_get_value_by_combined_input()
        {
            ArgsParser parser = new ArgsParserBuilder()
                                .BeginDefaultCommand()
                                .AddFlagOption("read", 'r')
                                .AddFlagOption("check", 'c')
                                .AddFlagOption("force", 'f')
                                .EndCommand()
                                .Build();
            ArgsParsingResult argsParsingResult = parser.Parse(new [] { "-f" });

            Assert.Throws <ArgumentException>(() => { argsParsingResult.GetFlagValue("-rc"); });
        }
        public void should_get_flag_for_specified_command()
        {
            ArgsParser parser = new ArgsParserBuilder()
                                .BeginCommand("command", string.Empty)
                                .AddFlagOption("flag", 'f', string.Empty)
                                .EndCommand()
                                .Build();

            ArgsParsingResult result = parser.Parse(new [] { "command", "-f" });

            result.AssertSuccess();
            Assert.True(result.GetFlagValue("--flag"));
        }
        public void should_throw_when_getting_flag_in_a_failure_result()
        {
            ArgsParser parser = new ArgsParserBuilder()
                                .BeginDefaultCommand()
                                .AddFlagOption("flag", 'f', string.Empty)
                                .EndCommand()
                                .Build();

            ArgsParsingResult result = parser.Parse(new [] { "free_value" });

            Assert.False(result.IsSuccess);
            Assert.Throws <InvalidOperationException>(() => result.GetFlagValue("--flag"));
        }