internal void AddPositionalOption_Should_Throw_PositionalOptionListConflictException_PositionalOption_Reverse() { // Arrange var mapper = new ArgsMapper <OneListStringOptionWithOneBoolOptionArgs>(); mapper.AddPositionalOption(x => x.Option); // Assert Assert.Throws <PositionalOptionListConflictException>(() => mapper.AddPositionalOption(x => x.Options) ); }
internal void AddPositionalOption_Should_Throw_OptionLongNameAlreadyExistsException() { // Arrange var mapper = new ArgsMapper <OneBoolOptionArgs>(); mapper.AddPositionalOption(x => x.Option); // Assert Assert.Throws <OptionLongNameAlreadyExistsException>(() => mapper.AddPositionalOption(x => x.Option) ); }
internal void AddPositionalOption_Should_Throw_PositionalOptionListConflictException_PositionalOption_List() { // Arrange var mapper = new ArgsMapper <TwoListStringOptionArgs>(); mapper.AddPositionalOption(x => x.Options1); // Assert Assert.Throws <PositionalOptionListConflictException>(() => mapper.AddPositionalOption(x => x.Options2) ); }
internal void Mapper_AddPositionalOption_List_Should_Be_Initialized_With_Property() { // Arrange var mapper = new ArgsMapper <OneListStringOptionArgs>(); mapper.AddPositionalOption(x => x.Option); }
internal void MapperResult_Should_Have_Error_When_Args_Exceeded_PositionalOption_Definitions() { // Arrange var mapper = new ArgsMapper <ThreeIntOptionsArgs>(); mapper.AddPositionalOption(x => x.Option1); mapper.AddPositionalOption(x => x.Option2); mapper.AddPositionalOption(x => x.Option3); // Act var result = mapper.Map("1", "2", "3", "4"); // Assert Assert.True(result.HasError); Assert.Equal("There is no matched option for value '4'.", result.ErrorMessage); }
internal void Mapper_AddPositionalOption_Should_Be_Initialized_With_Property_LongName() { // Arrange var mapper = new ArgsMapper <OneBoolOptionArgs>(); mapper.AddPositionalOption(x => x.Option, "option"); }
internal void Mapper_AddPositionalOption_Should_Be_Initialized_With_Property_Settings() { // Arrange var mapper = new ArgsMapper <OneBoolOptionArgs>(); mapper.AddPositionalOption(x => x.Option, optionSettings => { }); }
internal void Mapper_AddPositionalOption_List_Should_Be_Initialized_With_Settings() { // Arrange var mapper = new ArgsMapper <OneListStringOptionWithOneBoolOptionArgs>(); mapper.AddPositionalOption(x => x.Options, optionSettings => { }); }
internal void PositionalOption_Single_String_Values_Should_Be_Matched_After_Separator() { // Arrange var mapper = new ArgsMapper <ThreeStringOptionsArgs>(); mapper.AddPositionalOption(x => x.Option1); mapper.AddPositionalOption(x => x.Option2); mapper.AddOption(x => x.Option3); // Act var result = mapper.Map("--option3", "bar", "--", "foo", "--option"); // Assert Assert.Equal("foo", result.Model.Option1); Assert.Equal("--option", result.Model.Option2); Assert.Equal("bar", result.Model.Option3); }
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); }
internal void PositionalOption_Should_Be_Matched_Values_With_Default_Values() { // Arrange var mapper = new ArgsMapper <ThreeIntOptionsArgs>(); mapper.AddPositionalOption(x => x.Option1); mapper.AddPositionalOption(x => x.Option2); mapper.AddPositionalOption(x => x.Option3); // Act var result = mapper.Map("1"); // Assert Assert.Equal(1, result.Model.Option1); Assert.Equal(0, result.Model.Option2); Assert.Equal(0, result.Model.Option3); }
internal void PositionalOption_Single_Values_Should_Be_Matched_After_Separator() { // Arrange var mapper = new ArgsMapper <ThreeIntOptionsArgs>(); mapper.AddPositionalOption(x => x.Option1); mapper.AddPositionalOption(x => x.Option2); mapper.AddOption(x => x.Option3); // Act var result = mapper.Map("--option3", "3", "--", "1", "2"); // Assert Assert.Equal(1, result.Model.Option1); Assert.Equal(2, result.Model.Option2); Assert.Equal(3, result.Model.Option3); }
internal void AddPositionalOption_Should_Throw_ReservedOptionLongNameException(string optionLongName) { // Arrange var mapper = new ArgsMapper <OneBoolOptionArgs>(); // Assert Assert.Throws <ReservedOptionLongNameException>(() => mapper.AddPositionalOption(x => x.Option, optionLongName) ); }
internal void PositionalOption_Should_Be_Used_With_Named_Options() { // Arrange var mapper = new ArgsMapper <FourBoolOptionArgs>(); mapper.AddPositionalOption(x => x.Option1); mapper.AddOption(x => x.Option2); mapper.AddPositionalOption(x => x.Option3); mapper.AddOption(x => x.Option4, 'o', "option4"); // Act var result = mapper.Map("1", "off", "-o", "--option2", "on"); // Assert Assert.True(result.Model.Option1); Assert.True(result.Model.Option2); Assert.False(result.Model.Option3); Assert.True(result.Model.Option4); }
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) ); }
internal void PositionalOption_Should_Be_Matched_Bool_Values() { // Arrange var mapper = new ArgsMapper <FourBoolOptionArgs>(); mapper.AddPositionalOption(x => x.Option1); mapper.AddPositionalOption(x => x.Option2); mapper.AddPositionalOption(x => x.Option3); mapper.AddPositionalOption(x => x.Option4); // Act var result = mapper.Map("1", "on", "true", "0"); // Assert Assert.True(result.Model.Option1); Assert.True(result.Model.Option2); Assert.True(result.Model.Option3); Assert.False(result.Model.Option4); }
internal void AddPositionalOption_Should_Throw_UnsupportedOptionPropertyTypeException_Class() { // Arrange var mapper = new ArgsMapper <OneCommandWithOneBoolOptionArgs>(); // Assert Assert.Throws <UnsupportedOptionPropertyTypeException>(() => mapper.AddPositionalOption(x => x.Command) ); }
internal void AddPositionalOption_Should_Throw_ArgumentException_When_Property_Method() { // Arrange var mapper = new ArgsMapper <OneBoolMethodOptionArgs>(); // Assert Assert.Throws <ArgumentException>(() => mapper.AddPositionalOption(x => x.Option()) ); }
internal void AddPositionalOption_Should_Throw_OptionLongNameRequiredException() { // Arrange var mapper = new ArgsMapper <OneBoolOptionArgs>(); // Assert Assert.Throws <OptionLongNameRequiredException>(() => mapper.AddPositionalOption(x => x.Option, string.Empty) ); }
internal void AddCommand_Should_Throw_CommandConflictsWithPositionalOptionException() { // Arrange var mapper = new ArgsMapper <OneCommandWithOneBoolOptionAndOneBoolOptionArgs>(); mapper.AddPositionalOption(x => x.Option); // Assert Assert.Throws <CommandConflictsWithPositionalOptionException>(() => mapper.AddCommand(x => x.Command) ); }
internal void PositionalOption_List_Should_Have_Arg_Values() { // Arrange var mapper = new ArgsMapper <OneListStringOptionArgs>(); mapper.AddPositionalOption(x => x.Option); // Act var result = mapper.Map("foo", "bar"); // Assert Assert.Equal(new[] { "foo", "bar" }, result.Model.Option); }
internal void PositionalOption_Should_Be_Matched_With_Assignment_Operator_Included_Values(string value) { // Arrange var mapper = new ArgsMapper <OneStringOptionArgs>(); mapper.AddPositionalOption(x => x.Option); // Act var result = mapper.Map(value); // Assert Assert.Equal(value, result.Model.Option); }
internal void MapperResult_Should_Have_Error_When_PositionalOption_Value_Valid_Option() { // Arrange var mapper = new ArgsMapper <OneIntOptionArgs>(); mapper.AddPositionalOption(x => x.Option); // Act var result = mapper.Map("--foobar"); // Assert Assert.True(result.HasError); Assert.Equal("Unknown option '--foobar'.", result.ErrorMessage); }
internal void PositionalOption_Values_Should_Be_Matched_After_Separator() { // Arrange var mapper = new ArgsMapper <OneListStringOptionWithOneBoolOptionArgs>(); mapper.AddPositionalOption(x => x.Options); mapper.AddOption(x => x.Option); // Act var result = mapper.Map("--option", "1", "--", "foo", "bar", "--option", "1"); // Assert Assert.Equal(new[] { "foo", "bar", "--option", "1" }, result.Model.Options); Assert.Equal(1, result.Model.Option); }
internal void MapperResult_Should_Have_Error_When_PositionalOption_List_Is_Required() { // Arrange var mapper = new ArgsMapper <OneListStringOptionArgs>(); mapper.AddPositionalOption(x => x.Option, optionSettings => { optionSettings.IsRequired = true; }); // Act var result = mapper.Map(); // Assert Assert.True(result.HasError); Assert.Equal("Required option 'option' is missing.", result.ErrorMessage); }
internal void Should_Be_Use_PositionalOption_List_With_Another_Option() { // Arrange var mapper = new ArgsMapper <OneListStringOptionWithOneBoolOptionArgs>(); mapper.AddPositionalOption(x => x.Options); mapper.AddOption(x => x.Option); // Act var result = mapper.Map("foo", "bar", "--option", "1"); // Assert Assert.Contains("foo", result.Model.Options); Assert.Contains("bar", result.Model.Options); Assert.Equal(1, result.Model.Option); }