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); }
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); }
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")); }
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); }
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-")); }
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")); }
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); }
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")); }
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")); }
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); }
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); }
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")); }