Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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 }));
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        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"));
        }
Ejemplo n.º 9
0
        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"));
        }
Ejemplo n.º 10
0
        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);
        }
Ejemplo n.º 11
0
        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);
        }
Ejemplo n.º 12
0
        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"));
        }
Ejemplo n.º 13
0
        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"));
        }
Ejemplo n.º 14
0
        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);
        }
Ejemplo n.º 15
0
        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);
        }
Ejemplo n.º 16
0
        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);
        }
Ejemplo n.º 17
0
        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"));
        }
Ejemplo n.º 18
0
        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);
        }
Ejemplo n.º 19
0
        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);
        }
Ejemplo n.º 20
0
        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"));
        }
Ejemplo n.º 21
0
        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"));
        }