void should_parse_successfully_when_parsing_args_contain_valid_combined_flags_without_order_and_valid_single_flag() { var fullName1 = "flag"; var abbreviation1 = 'f'; var fullName2 = "flagSecond"; var abbreviation2 = 's'; var fullName3 = "flagThird"; var abbreviation3 = 't'; var parser = new ArgsParserBuilder() .BeginDefaultCommand() .AddFlagOption(fullName1, abbreviation1, String.Empty) .AddFlagOption(fullName2, abbreviation2, String.Empty) .AddFlagOption(fullName3, abbreviation3, String.Empty) .EndCommand() .Build(); var argsParsingResult = parser.Parser(new[] { "-sf", "-t" }); Assert.True(argsParsingResult.IsSuccess); Assert.Null(argsParsingResult.Error); var argsParsingResult2 = parser.Parser(new[] { "-fs", "-t" }); Assert.True(argsParsingResult2.IsSuccess); Assert.Null(argsParsingResult2.Error); }
void should_throw_ArgumentException_when_parse_with_parameter_has_null() { var fullName = "flag"; var abbreviation = 'f'; var parser = new ArgsParserBuilder() .BeginDefaultCommand() .AddFlagOption(fullName, abbreviation, null) .EndCommand() .Build(); Assert.Throws <ArgumentException>(() => parser.Parser(new[] { "-f", null })); }
void should_success_when_add_mutiple_flags_with_full_names_are_all_null() { var abbreviation1 = 'f'; var abbreviation2 = 'S'; var parser = new ArgsParserBuilder() .BeginDefaultCommand().AddFlagOption(null, abbreviation1, null).AddFlagOption(null, abbreviation2, null) .EndCommand() .Build(); ArgsParsingResult result = parser.Parser(new[] { "-f" }); Assert.True(result.IsSuccess); }
void should_success_when_add_mutiple_flags_with_abbreviation_names_are_all_null() { var fullName1 = "flag"; var fullName2 = "flagSecond"; var parser = new ArgsParserBuilder() .BeginDefaultCommand().AddFlagOption(fullName1, null, null).AddFlagOption(fullName2, null, null) .EndCommand() .Build(); ArgsParsingResult result = parser.Parser(new[] { "--flag" }); Assert.True(result.IsSuccess); }
void should_be_null_get_command_symbol_when_add_default_command() { var fullName1 = "flag"; var abbreviation1 = 'f'; var parser = new ArgsParserBuilder() .BeginDefaultCommand() .AddFlagOption(fullName1, abbreviation1, String.Empty) .EndCommand() .Build(); var result = parser.Parser(new[] { "-f" }); Assert.NotNull(result.Command); Assert.Null(result.Command.Symbol); }
void should_return_null_when_get_command_if_parse_fail() { var fullName1 = "flag"; var abbreviation1 = 'f'; var parser = new ArgsParserBuilder() .BeginDefaultCommand() .AddFlagOption(fullName1, abbreviation1, String.Empty) .EndCommand() .Build(); var result = parser.Parser(new[] { "-e" }); Assert.False(result.IsSuccess); Assert.Null(result.Command); }
void should_parse_valid_combined_flags_successfully_no_matter_the_order() { var fullName1 = "flag"; var abbreviation1 = 'f'; var fullName2 = "flagSecond"; var abbreviation2 = 's'; var parser = new ArgsParserBuilder() .BeginDefaultCommand() .AddFlagOption(fullName1, abbreviation1, String.Empty) .AddFlagOption(fullName2, abbreviation2, String.Empty) .EndCommand() .Build(); var argsParsingResult = parser.Parser(new[] { "-fs" }); Assert.True(argsParsingResult.IsSuccess); Assert.Null(argsParsingResult.Error); var anotherOrderArgsParsingResult = parser.Parser(new[] { "-sf" }); Assert.True(anotherOrderArgsParsingResult.IsSuccess); Assert.Null(anotherOrderArgsParsingResult.Error); }
void should_throw_ArgumentException_when_get_flag_value_with_invalid_parameter() { var fullName = "flag"; var abbreviationName = 'f'; var parser = new ArgsParserBuilder() .BeginDefaultCommand() .AddFlagOption(fullName, abbreviationName, null) .EndCommand() .Build(); ArgsParsingResult result = parser.Parser(new[] { "-f" }); Assert.True(result.IsSuccess); Assert.Throws <ArgumentException>(() => result.GetFlagValue("ff")); }
void should_throw_InvalidOperationException_when_get_flag_value_if_IsSucess_is_false() { var fullName = "flag"; var abbreviationName = 'f'; var parser = new ArgsParserBuilder() .BeginDefaultCommand() .AddFlagOption(fullName, abbreviationName, null) .EndCommand() .Build(); ArgsParsingResult result = parser.Parser(new[] { "-S" }); Assert.False(result.IsSuccess); Assert.Throws <InvalidOperationException>(() => result.GetFlagValue("-f")); }
void should_return_DuplicateFlagsInArgs_error_code_when_parse_with_duplicate_parameter() { var fullName = "flag"; var abbreviationName = 'f'; var parser = new ArgsParserBuilder() .BeginDefaultCommand().AddFlagOption(fullName, abbreviationName, null) .EndCommand() .Build(); ArgsParsingResult result = parser.Parser(new[] { "-f", "-f" }); Assert.False(result.IsSuccess); Assert.Equal(ParsingErrorCode.DuplicateFlagsInArgs, result.Error.Code); Assert.Equal("-f", result.Error.Trigger); }
public void should_parse_success_and_can_get_flag_value_when_flag_has_two_valid_names() { var fullName = "flag"; var abbrName = 'f'; var description = "the first flag"; ArgsParser parser = new ArgsParserBuilder() .BeginDefaultCommand() .AddFlagOption(fullName, abbrName, description) .EndCommand() .Build(); ArgsParsingResult result = parser.Parser(new[] { "-f" }); Assert.True(result.IsSuccess); Assert.True(result.GetFlagValue("--flag")); Assert.Null(result.Error); ArgsParsingResult result2 = parser.Parser(new[] { "--flag" }); Assert.True(result2.IsSuccess); Assert.True(result2.GetFlagValue("-f")); Assert.Null(result2.Error); }
void should_success_and_get_flag_value_when_add_flag_with_description_is_null() { var fullName = "flag"; var abbreviation = 'f'; var parser = new ArgsParserBuilder() .BeginDefaultCommand() .AddFlagOption(fullName, abbreviation, null) .EndCommand() .Build(); ArgsParsingResult result = parser.Parser(new[] { "--flag" }); Assert.True(result.IsSuccess); Assert.True(result.GetFlagValue("-f")); }
public void should_parse_success_and_can_get_flag_value_when_flag_has_abbreviation_name() { var abbrName = 'f'; var description = "the first flag"; ArgsParser parser = new ArgsParserBuilder() .BeginDefaultCommand() .AddFlagOption(null, abbrName, description) .EndCommand() .Build(); ArgsParsingResult result = parser.Parser(new[] { "-f" }); Assert.True(result.IsSuccess); Assert.True(result.GetFlagValue("-f")); }
void should_return_FreeValueNotSupported_error_code_when_parse_with_undefined_flag() { var fullName = "flag"; var abbreviationName = 'f'; var parser = new ArgsParserBuilder() .BeginDefaultCommand() .AddFlagOption(fullName, abbreviationName, null) .EndCommand() .Build(); ArgsParsingResult result = parser.Parser(new[] { "--second" }); Assert.False(result.IsSuccess); Assert.Equal(ParsingErrorCode.FreeValueNotSupported, result.Error.Code); Assert.Equal("--second", result.Error.Trigger); }
public void should_return_false_and_get_error_code_when_parse_parameter_is_invalid() { var fullName = "flag"; var abbrName = 'f'; var description = "the first flag"; ArgsParser parser = new ArgsParserBuilder() .BeginDefaultCommand() .AddFlagOption(fullName, abbrName, description) .EndCommand() .Build(); ArgsParsingResult result = parser.Parser(new[] { "-f", "freeValueFlag" }); Assert.False(result.IsSuccess); Assert.Equal(ParsingErrorCode.FreeValueNotSupported, result.Error.Code); Assert.Equal("freeValueFlag", result.Error.Trigger); }
void should_success_and_get_flag_value_when_add_flag_with_full_name_is_null() { var abbreviation = 'f'; var description = "the first flag"; var parser = new ArgsParserBuilder() .BeginDefaultCommand() .AddFlagOption(null, abbreviation, description) .EndCommand() .Build(); ArgsParsingResult result = parser.Parser(new[] { "-f" }); Assert.True(result.IsSuccess); Assert.True(result.GetFlagValue("-f")); Assert.Null(result.Error); }
void should_throw_ArgumentException_when_get_flag_value_with_combined_flag() { var fullName1 = "flag"; var abbreviation1 = 'f'; var fullName2 = "flagSecond"; var abbreviation2 = 's'; var parser = new ArgsParserBuilder() .BeginDefaultCommand() .AddFlagOption(fullName1, abbreviation1, String.Empty) .AddFlagOption(fullName2, abbreviation2, String.Empty) .EndCommand() .Build(); ArgsParsingResult result = parser.Parser(new[] { "-fs" }); Assert.True(result.IsSuccess); Assert.Throws <ArgumentException>(() => result.GetFlagValue("fs")); }
void should_return_DuplicateFlagsInArgs_error_code_when_combined_flags_contain_same_flag_with_other_flag_in_args() { var fullName1 = "flag"; var abbreviation1 = 'f'; var fullName2 = "flagSecond"; var abbreviation2 = 's'; var parser = new ArgsParserBuilder() .BeginDefaultCommand() .AddFlagOption(fullName1, abbreviation1, String.Empty) .AddFlagOption(fullName2, abbreviation2, String.Empty) .EndCommand() .Build(); var argsParsingResult = parser.Parser(new[] { "-fs", "--flag" }); Assert.False(argsParsingResult.IsSuccess); Assert.Equal(ParsingErrorCode.DuplicateFlagsInArgs, argsParsingResult.Error.Code); Assert.Equal("--flag", argsParsingResult.Error.Trigger); }
void should_return_FreeValueNotSupported_error_code_when_combined_flags_contain_undefined_flag_abbreviation() { var fullName1 = "flag"; var abbreviation1 = 'f'; var fullName2 = "flagSecond"; var abbreviation2 = 's'; var parser = new ArgsParserBuilder() .BeginDefaultCommand() .AddFlagOption(fullName1, abbreviation1, String.Empty) .AddFlagOption(fullName2, abbreviation2, String.Empty) .EndCommand() .Build(); var argsParsingResult = parser.Parser(new[] { "-fa" }); Assert.False(argsParsingResult.IsSuccess); Assert.Equal(ParsingErrorCode.FreeValueNotSupported, argsParsingResult.Error.Code); Assert.Equal("-fa", argsParsingResult.Error.Trigger); }
void should_get_value_when_parsing_args_contain_valid_combined_flags_and_valid_single_flag() { var fullName1 = "flag"; var abbreviation1 = 'f'; var fullName2 = "flagSecond"; var abbreviation2 = 's'; var fullName3 = "flagThird"; var abbreviation3 = 't'; var parser = new ArgsParserBuilder() .BeginDefaultCommand() .AddFlagOption(fullName1, abbreviation1, String.Empty) .AddFlagOption(fullName2, abbreviation2, String.Empty) .AddFlagOption(fullName3, abbreviation3, String.Empty) .EndCommand() .Build(); var argsParsingResult = parser.Parser(new[] { "-fs", "-t" }); Assert.True(argsParsingResult.GetFlagValue("-t")); }
void should_success_add_multiple_flags() { var fullName1 = "flag"; var abbreviation1 = 'f'; var fullName2 = "flagSecond"; var abbreviation2 = 'S'; var parser = new ArgsParserBuilder() .BeginDefaultCommand() .AddFlagOption(fullName1, abbreviation1, null) .AddFlagOption(fullName2, abbreviation2, null) .EndCommand() .Build(); ArgsParsingResult result = parser.Parser(new[] { "--flag" }); Assert.True(result.IsSuccess); Assert.True(result.GetFlagValue("-f")); }