Exemple #1
0
        internal void Mapper_AddPositionalOption_Should_Be_Initialized_With_Property_LongName()
        {
            // Arrange
            var mapper = new ArgsMapper <OneBoolOptionArgs>();

            mapper.AddPositionalOption(x => x.Option, "option");
        }
Exemple #2
0
        internal void Mapper_AddPositionalOption_List_Should_Be_Initialized_With_Property()
        {
            // Arrange
            var mapper = new ArgsMapper <OneListStringOptionArgs>();

            mapper.AddPositionalOption(x => x.Option);
        }
Exemple #3
0
        internal void Command_Subcommand_Subcommand_Subcommand_Should_Be_Matched_With_Default_Name()
        {
            // Arrange
            var mapper = new ArgsMapper <FourLevelNestedCommandArgs>();

            mapper.AddCommand(x => x.Command, commandSettings => {
                commandSettings.AddSubcommand(x => x.Command, subcommandSettings0 => {
                    subcommandSettings0.AddSubcommand(x => x.Command, subcommandSettings1 => {
                        subcommandSettings1.AddSubcommand(x => x.Command);
                    });
                });
            });

            // Act
            var result = mapper.Map("command", "command", "command", "command");

            // Assert
            Assert.NotNull(result.Model.Command);
            Assert.NotNull(result.Model.Command.Command);
            Assert.NotNull(result.Model.Command.Command.Command);
            Assert.NotNull(result.Model.Command.Command.Command.Command);

            Assert.IsType <ThreeLevelNestedCommandArgs>(result.Model.Command);
            Assert.IsType <TwoLevelNestedCommandArgs>(result.Model.Command.Command);
            Assert.IsType <OneCommandWithOneBoolOptionArgs>(result.Model.Command.Command.Command);
            Assert.IsType <OneBoolOptionArgs>(result.Model.Command.Command.Command.Command);
        }
Exemple #4
0
        internal void Mapper_AddOption_Should_Be_Initialized_With_Property()
        {
            // Arrange
            var mapper = new ArgsMapper <OneBoolOptionArgs>();

            mapper.AddOption(x => x.Option);
        }
Exemple #5
0
        internal void Mapper_AddCommand_Should_Be_Initialized_With_Property_LongName()
        {
            // Arrange
            var mapper = new ArgsMapper <OneCommandWithOneBoolOptionArgs>();

            mapper.AddCommand(x => x.Command, "command");
        }
Exemple #6
0
        internal void Command_Option_Value_Should_Be_Default_Value_Multiple()
        {
            // Arrange
            var mapper = new ArgsMapper <OneCommandWithThreeIntOptionsArgs>();

            mapper.AddCommand(x => x.Command, commandSettings => {
                commandSettings.AddOption(x => x.Option1, optionSettings => {
                    optionSettings.DefaultValue = 1;
                });

                commandSettings.AddOption(x => x.Option2, optionSettings => {
                    optionSettings.DefaultValue = 2;
                });

                commandSettings.AddOption(x => x.Option3, optionSettings => {
                    optionSettings.DefaultValue = 3;
                });
            });

            // Act
            var result = mapper.Map("command");

            // Assert
            Assert.Equal(1, result.Model.Command.Option1);
            Assert.Equal(2, result.Model.Command.Option2);
            Assert.Equal(3, result.Model.Command.Option3);
        }
Exemple #7
0
        internal void Mapper_AddPositionalOption_Should_Be_Initialized_With_Property_Settings()
        {
            // Arrange
            var mapper = new ArgsMapper <OneBoolOptionArgs>();

            mapper.AddPositionalOption(x => x.Option, optionSettings => {
            });
        }
Exemple #8
0
        internal void Mapper_AddPositionalOption_List_Should_Be_Initialized_With_Settings()
        {
            // Arrange
            var mapper = new ArgsMapper <OneListStringOptionWithOneBoolOptionArgs>();

            mapper.AddPositionalOption(x => x.Options, optionSettings => {
            });
        }
Exemple #9
0
        internal void Mapper_AddPositionalOption_List_AddOption_Should_Be_Initialized()
        {
            // Arrange
            var mapper = new ArgsMapper <OneListStringOptionWithOneBoolOptionArgs>();

            mapper.AddPositionalOption(x => x.Options);
            mapper.AddOption(x => x.Option);
        }
Exemple #10
0
        internal void Mapper_AddCommand_Should_Be_Initialized_With_Property_Settings()
        {
            // Arrange
            var mapper = new ArgsMapper <OneCommandWithOneBoolOptionArgs>();

            mapper.AddCommand(x => x.Command, commandSettings => {
            });
        }
Exemple #11
0
        internal void Usage_AddCommand_Usage_AddHelpOption()
        {
            var mapper = new ArgsMapper <OneCommandWithOneBoolOptionArgs>();

            mapper.AddCommand(x => x.Command, commandSettings => {
                commandSettings.Usage.AddHelpOption();
            });
        }
Exemple #12
0
        internal void Mapper_AddCommand_AddOption_Should_Be_Initialized_With_Property_ShortName_LongName()
        {
            // Arrange
            var mapper = new ArgsMapper <OneCommandWithOneBoolOptionArgs>();

            mapper.AddCommand(x => x.Command, "command", commandSettings => {
                commandSettings.AddOption(x => x.Option, 'o', "option");
            });
        }
Exemple #13
0
        internal void Mapper_AddCommand_AddPositionalOption_Should_Be_Initialized_With_Property()
        {
            // Arrange
            var mapper = new ArgsMapper <OneCommandWithOneBoolOptionArgs>();

            mapper.AddCommand(x => x.Command, "command", commandSettings => {
                commandSettings.AddPositionalOption(x => x.Option);
            });
        }
Exemple #14
0
        internal void Mapper_AddCommand_AddSubcommand_Should_Be_Initialized_With_Property_LongName()
        {
            // Arrange
            var mapper = new ArgsMapper <TwoLevelNestedCommandArgs>();

            mapper.AddCommand(x => x.Command, commandSettings => {
                commandSettings.AddSubcommand(x => x.Command, "command");
            });
        }
Exemple #15
0
        internal void Usage_AddCommand_Usage_AddSection_AddTable_2_Columns()
        {
            var mapper = new ArgsMapper <OneCommandWithOneBoolOptionArgs>();

            mapper.AddCommand(x => x.Command, commandSettings => {
                commandSettings.Usage.AddSection("header", section => {
                    section.AddTable(("column1", "column2"));
                });
            });
Exemple #16
0
        internal void AddCommand_Should_Throw_CommandNameRequiredException()
        {
            // Arrange
            var mapper = new ArgsMapper <OneCommandWithOneBoolOptionArgs>();

            // Assert
            Assert.Throws <CommandNameRequiredException>(() =>
                                                         mapper.AddCommand(x => x.Command, string.Empty)
                                                         );
        }
Exemple #17
0
        internal void AddPositionalOption_Should_Throw_ReservedOptionLongNameException(string optionLongName)
        {
            // Arrange
            var mapper = new ArgsMapper <OneBoolOptionArgs>();

            // Assert
            Assert.Throws <ReservedOptionLongNameException>(() =>
                                                            mapper.AddPositionalOption(x => x.Option, optionLongName)
                                                            );
        }
Exemple #18
0
        internal void AddOption_Should_Throw_InvalidOptionShortNameException(char optionShortName)
        {
            // Arrange
            var mapper = new ArgsMapper <OneBoolOptionArgs>();

            // Assert
            Assert.Throws <InvalidOptionShortNameException>(() =>
                                                            mapper.AddOption(x => x.Option, optionShortName, "option")
                                                            );
        }
Exemple #19
0
        internal void AddPositionalOption_Should_Throw_UnsupportedOptionPropertyTypeException_Class()
        {
            // Arrange
            var mapper = new ArgsMapper <OneCommandWithOneBoolOptionArgs>();

            // Assert
            Assert.Throws <UnsupportedOptionPropertyTypeException>(() =>
                                                                   mapper.AddPositionalOption(x => x.Command)
                                                                   );
        }
Exemple #20
0
        internal void AddPositionalOption_Should_Throw_OptionLongNameRequiredException()
        {
            // Arrange
            var mapper = new ArgsMapper <OneBoolOptionArgs>();

            // Assert
            Assert.Throws <OptionLongNameRequiredException>(() =>
                                                            mapper.AddPositionalOption(x => x.Option, string.Empty)
                                                            );
        }
Exemple #21
0
        internal void AddPositionalOption_Should_Throw_ArgumentException_When_Property_Method()
        {
            // Arrange
            var mapper = new ArgsMapper <OneBoolMethodOptionArgs>();

            // Assert
            Assert.Throws <ArgumentException>(() =>
                                              mapper.AddPositionalOption(x => x.Option())
                                              );
        }
Exemple #22
0
        internal void AddPositionalOption_Should_Throw_ArgumentException_When_Property_Has_No_Setter()
        {
            // Arrange
            var mapper = new ArgsMapper <OneBoolWithoutSetterOptionArgs>();

            // Assert
            Assert.Throws <ArgumentException>(() =>
                                              mapper.AddPositionalOption(x => x.Option)
                                              );
        }
Exemple #23
0
        internal void AddOption_Should_Throw_ArgumentException_When_Property_Internal()
        {
            // Arrange
            var mapper = new ArgsMapper <OneInternalBoolOptionArgs>();

            // Assert
            Assert.Throws <ArgumentException>(() =>
                                              mapper.AddOption(x => x.Option)
                                              );
        }
Exemple #24
0
        internal void Mapper_AddCommand_AddOption_AddPositionalOption_List_Should_Be_Initialized()
        {
            // Arrange
            var mapper = new ArgsMapper <OneCommandWithOneListStringOptionWithOneBoolOptionArgs>();

            mapper.AddCommand(x => x.Command, "command", commandSettings => {
                commandSettings.AddOption(x => x.Option);
                commandSettings.AddPositionalOption(x => x.Options);
            });
        }
Exemple #25
0
        internal void AddCommand_Should_Throw_InvalidCommandNameException(string commandName)
        {
            // Arrange
            var mapper = new ArgsMapper <OneCommandWithOneBoolOptionArgs>();

            // Assert
            Assert.Throws <InvalidCommandNameException>(() =>
                                                        mapper.AddCommand(x => x.Command, commandName)
                                                        );
        }
Exemple #26
0
        internal void AddCommand_Should_Throw_ArgumentException_When_Property_Method()
        {
            // Arrange
            var mapper = new ArgsMapper <OneCommandMethodWithOneBoolOptionArgs>();

            // Assert
            Assert.Throws <ArgumentException>(() =>
                                              mapper.AddCommand(x => x.Command())
                                              );
        }
Exemple #27
0
        internal void Usage_AddCommand_Usage_AddSection_AddHelpOption_With_Settings()
        {
            var mapper = new ArgsMapper <OneCommandWithOneBoolOptionArgs>();

            mapper.AddCommand(x => x.Command, commandSettings => {
                commandSettings.Usage.AddSection("header", section => {
                    section.AddHelpOption(settings => { });
                });
            });
        }
Exemple #28
0
        internal void Usage_AddCommand_AddSubCommand_Usage_AddEmptyLine()
        {
            var mapper = new ArgsMapper <OneCommandWithOneClassWithOneBoolOption>();

            mapper.AddCommand(x => x.Command, commandSettings => {
                commandSettings.AddSubcommand(x => x.Command, subcommandSettings => {
                    subcommandSettings.Usage.AddEmptyLine();
                });
            });
        }
Exemple #29
0
        private static void Main(string[] args)
        {
            var mapper = new ArgsMapper <Args>();

            mapper.AddCommand(x => x.AddUser, commandSettings => {
                commandSettings.AddOption(x => x.Username);
                commandSettings.AddOption(x => x.Password);
            });

            mapper.Execute(args, OnSuccess, OnError);
        }
Exemple #30
0
        internal void Execute_OnError_Result_Should_Have_ErrorMessage()
        {
            // Arrange
            var mapper = new ArgsMapper <OneBoolOptionArgs>();

            // Act
            mapper.Execute(new[] { "--option" }, null, errorResult => {
                // Assert
                Assert.Equal("Unknown option '--option'.", errorResult.ErrorMessage);
            });
        }