Skip to content

Commit 21cefe5

Browse files
committed
make Argument (non-generic) abstract
1 parent 3a307a9 commit 21cefe5

File tree

11 files changed

+47
-108
lines changed

11 files changed

+47
-108
lines changed

src/System.CommandLine.Tests/ArgumentTests.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,15 @@ public class ArgumentTests : SymbolTests
1717
[Fact]
1818
public void By_default_there_is_no_default_value()
1919
{
20-
var argument = new Argument();
20+
var argument = new Argument<string>();
2121

2222
argument.HasDefaultValue.Should().BeFalse();
2323
}
2424

2525
[Fact]
2626
public void When_default_value_is_set_to_null_then_HasDefaultValue_is_true()
2727
{
28-
var argument = new Argument();
28+
var argument = new Argument<string>();
2929

3030
argument.SetDefaultValue(null);
3131

@@ -35,7 +35,7 @@ public void When_default_value_is_set_to_null_then_HasDefaultValue_is_true()
3535
[Fact]
3636
public void When_default_value_factory_is_set_then_HasDefaultValue_is_true()
3737
{
38-
var argument = new Argument();
38+
var argument = new Argument<string[]>();
3939

4040
argument.SetDefaultValueFactory(() => null);
4141

@@ -699,7 +699,7 @@ public void OnlyTake_can_pass_on_all_tokens()
699699

700700
protected override Symbol CreateSymbol(string name)
701701
{
702-
return new Argument(name);
702+
return new Argument<string>(name);
703703
}
704704
}
705705
}

src/System.CommandLine.Tests/CommandTests.cs

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -96,18 +96,12 @@ public void Commands_at_multiple_levels_can_have_their_own_arguments()
9696
{
9797
var outer = new Command("outer")
9898
{
99-
new Argument
100-
{
101-
Arity = ArgumentArity.ExactlyOne
102-
}
99+
new Argument<string>()
103100
};
104101
outer.AddCommand(
105102
new Command("inner")
106103
{
107-
new Argument
108-
{
109-
Arity = ArgumentArity.ZeroOrMore
110-
}
104+
new Argument<string[]>()
111105
});
112106

113107
var parser = new Parser(outer);
@@ -254,9 +248,9 @@ public void It_retains_argument_name_when_it_is_provided()
254248
{
255249
var command = new Command("-alias")
256250
{
257-
new Argument
251+
new Argument<bool>
258252
{
259-
Name = "arg", Arity = ArgumentArity.ZeroOrOne
253+
Name = "arg"
260254
}
261255
};
262256

src/System.CommandLine.Tests/CompletionContextTests.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -204,10 +204,7 @@ public void When_position_is_specified_in_string_command_line_then_it_returns_ar
204204
var command =
205205
new Command("the-command")
206206
{
207-
new Argument
208-
{
209-
Arity = ArgumentArity.ZeroOrMore
210-
}
207+
new Argument<string[]>()
211208
};
212209

213210
var position = commandLine.IndexOf("$", StringComparison.Ordinal);

src/System.CommandLine.Tests/CompletionTests.cs

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ public void Command_GetCompletions_returns_available_subcommands_and_option_alia
119119
{
120120
new Command("subcommand", "subcommand"),
121121
new Option<bool>("--option", "option"),
122-
new Argument
122+
new Argument<string[]>
123123
{
124124
Arity = ArgumentArity.OneOrMore,
125125
Completions = { "command-argument" }
@@ -156,7 +156,7 @@ public void Command_GetCompletions_does_not_return_argument_names()
156156
{
157157
var command = new Command("command")
158158
{
159-
new Argument("the-argument")
159+
new Argument<string>("the-argument")
160160
};
161161

162162
var completions = command.GetCompletions();
@@ -467,10 +467,7 @@ public void Subcommand_names_are_available_as_suggestions()
467467
{
468468
new Command("one", "Command one"),
469469
new Command("two", "Command two"),
470-
new Argument
471-
{
472-
Arity = ArgumentArity.ExactlyOne
473-
}
470+
new Argument<string>()
474471
};
475472

476473
var commandLine = "test";
@@ -488,10 +485,7 @@ public void Both_subcommands_and_options_are_available_as_suggestions()
488485
{
489486
new Command("one"),
490487
new Option<string>("--one"),
491-
new Argument
492-
{
493-
Arity = ArgumentArity.ExactlyOne
494-
}
488+
new Argument<string>()
495489
};
496490

497491
var commandLine = "test";

src/System.CommandLine.Tests/Help/HelpBuilderTests.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ public void Usage_section_shows_arguments_if_there_are_arguments_for_command_whe
127127
int maxArity,
128128
string expectedArgsUsage)
129129
{
130-
var argument = new Argument
130+
var argument = new Argument<string>
131131
{
132132
Name = "the-args",
133133
Arity = new ArgumentArity(minArity, maxArity)
@@ -167,14 +167,14 @@ public void Usage_section_shows_arguments_if_there_are_arguments_for_command_whe
167167
int maxArityForArg2,
168168
string expectedArgsUsage)
169169
{
170-
var arg1 = new Argument
170+
var arg1 = new Argument<string>
171171
{
172172
Name = "arg1",
173173
Arity = new ArgumentArity(
174174
minArityForArg1,
175175
maxArityForArg1)
176176
};
177-
var arg2 = new Argument
177+
var arg2 = new Argument<string>
178178
{
179179
Name = "arg2",
180180
Arity = new ArgumentArity(
@@ -418,7 +418,7 @@ public void Arguments_section_is_included_if_there_are_commands_with_arguments_c
418418
{
419419
var command = new Command("the-command", "command help")
420420
{
421-
new Argument
421+
new Argument<string>
422422
{
423423
Name = "arg command name",
424424
Description = "test"
@@ -822,7 +822,7 @@ public void Option_argument_first_column_indicates_enums_values(bool nullable)
822822
[Fact]
823823
public void Help_describes_default_value_for_argument()
824824
{
825-
var argument = new Argument
825+
var argument = new Argument<string>
826826
{
827827
Name = "the-arg",
828828
Description = "Help text from HelpDetail",
@@ -1529,11 +1529,11 @@ public void Subcommand_help_does_not_contain_hidden_argument()
15291529
[Fact]
15301530
public void Help_describes_default_value_for_subcommand_with_arguments_and_only_defaultable_is_shown()
15311531
{
1532-
var argument = new Argument
1532+
var argument = new Argument<string>
15331533
{
15341534
Name = "the-arg",
15351535
};
1536-
var otherArgumentHidden = new Argument
1536+
var otherArgumentHidden = new Argument<string>
15371537
{
15381538
Name = "the-other-hidden-arg",
15391539
IsHidden = true
@@ -1570,11 +1570,11 @@ public void Help_describes_default_value_for_subcommand_with_arguments_and_only_
15701570
[Fact]
15711571
public void Help_describes_default_values_for_subcommand_with_multiple_defaultable_arguments()
15721572
{
1573-
var argument = new Argument
1573+
var argument = new Argument<string>
15741574
{
15751575
Name = "the-arg",
15761576
};
1577-
var otherArgument = new Argument
1577+
var otherArgument = new Argument<string>
15781578
{
15791579
Name = "the-other-arg"
15801580
};

src/System.CommandLine.Tests/Invocation/TypoCorrectionTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ public async Task Hidden_commands_are_not_suggested()
124124
[Fact]
125125
public async Task Arguments_are_not_suggested()
126126
{
127-
var argument = new Argument("the-argument");
127+
var argument = new Argument<string>("the-argument");
128128
var command = new Command("been");
129129

130130
var parser =

src/System.CommandLine.Tests/ParseResultTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,14 +59,14 @@ public void Command_will_not_accept_a_command_if_a_sibling_command_has_already_b
5959
{
6060
new Command("inner-one")
6161
{
62-
new Argument
62+
new Argument<bool>
6363
{
6464
Arity = ArgumentArity.Zero
6565
}
6666
},
6767
new Command("inner-two")
6868
{
69-
new Argument
69+
new Argument<bool>
7070
{
7171
Arity = ArgumentArity.Zero
7272
}

src/System.CommandLine.Tests/ParserTests.MultipleArguments.cs

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -123,14 +123,8 @@ public void When_multiple_arguments_are_present_then_their_order_relative_to_sib
123123
[Fact]
124124
public void Multiple_arguments_of_unspecified_type_are_parsed_correctly()
125125
{
126-
var sourceArg = new Argument("source")
127-
{
128-
Arity = ArgumentArity.ExactlyOne
129-
};
130-
var destinationArg = new Argument("destination")
131-
{
132-
Arity = ArgumentArity.ExactlyOne
133-
};
126+
var sourceArg = new Argument<string>("source");
127+
var destinationArg = new Argument<string>("destination");
134128
var root = new RootCommand
135129
{
136130
sourceArg,

src/System.CommandLine.Tests/ParserTests.cs

Lines changed: 14 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -185,10 +185,7 @@ public void Options_do_not_get_unbundled_unless_all_resulting_options_would_be_v
185185
outer.AddOption(new Option<bool>("-a"));
186186
var inner = new Command("inner")
187187
{
188-
new Argument
189-
{
190-
Arity = ArgumentArity.ZeroOrMore
191-
}
188+
new Argument<string[]>()
192189
};
193190
inner.AddOption(new Option<bool>("-b"));
194191
inner.AddOption(new Option<bool>("-c"));
@@ -390,10 +387,8 @@ public void When_an_option_is_not_respecified_but_limit_is_reached_then_the_foll
390387
{
391388
animalsOption,
392389
vegetablesOption,
393-
new Argument
394-
{
395-
Arity = ArgumentArity.ZeroOrMore
396-
}});
390+
new Argument<string[]>()
391+
});
397392

398393
var result = parser.Parse("the-command -a cat some-arg -v carrot");
399394

@@ -541,16 +536,10 @@ public void When_nested_commands_all_accept_arguments_then_the_nearest_captures_
541536
var command = new Command(
542537
"outer")
543538
{
544-
new Argument
545-
{
546-
Arity = ArgumentArity.ZeroOrMore
547-
},
539+
new Argument<string[]>(),
548540
new Command("inner")
549541
{
550-
new Argument
551-
{
552-
Arity = ArgumentArity.ZeroOrMore
553-
}
542+
new Argument<string[]>()
554543
}
555544
};
556545

@@ -848,10 +837,7 @@ public void Absolute_unix_style_paths_are_lexed_correctly()
848837

849838
var parser = new Parser(new Command("rm")
850839
{
851-
new Argument
852-
{
853-
Arity = ArgumentArity.ZeroOrMore
854-
}
840+
new Argument<string[]>()
855841
});
856842

857843
var result = parser.Parse(command);
@@ -871,10 +857,7 @@ public void Absolute_Windows_style_paths_are_lexed_correctly()
871857

872858
var parser = new Parser(new Command("rm")
873859
{
874-
new Argument
875-
{
876-
Arity = ArgumentArity.ZeroOrMore
877-
}
860+
new Argument<string[]>()
878861
});
879862

880863
ParseResult result = parser.Parse(command);
@@ -1021,10 +1004,7 @@ public void The_default_behavior_of_unmatched_tokens_resulting_in_errors_can_be_
10211004
{
10221005
var command = new Command("the-command")
10231006
{
1024-
new Argument
1025-
{
1026-
Arity = ArgumentArity.ExactlyOne
1027-
}
1007+
new Argument<string>()
10281008
};
10291009
command.TreatUnmatchedTokensAsErrors = false;
10301010

@@ -1410,7 +1390,7 @@ public void Parse_can_be_called_with_null_args()
14101390
[Fact]
14111391
public void Command_argument_arity_can_be_a_fixed_value_greater_than_1()
14121392
{
1413-
var argument = new Argument
1393+
var argument = new Argument<string[]>
14141394
{
14151395
Arity = new ArgumentArity(3, 3)
14161396
};
@@ -1432,7 +1412,7 @@ public void Command_argument_arity_can_be_a_fixed_value_greater_than_1()
14321412
[Fact]
14331413
public void Command_argument_arity_can_be_a_range_with_a_lower_bound_greater_than_1()
14341414
{
1435-
var argument = new Argument
1415+
var argument = new Argument<string[]>
14361416
{
14371417
Arity = new ArgumentArity(3, 5)
14381418
};
@@ -1466,7 +1446,7 @@ public void When_command_arguments_are_fewer_than_minimum_arity_then_an_error_is
14661446
{
14671447
var command = new Command("the-command")
14681448
{
1469-
new Argument
1449+
new Argument<string[]>
14701450
{
14711451
Arity = new ArgumentArity(2, 3)
14721452
}
@@ -1485,7 +1465,7 @@ public void When_command_arguments_are_greater_than_maximum_arity_then_an_error_
14851465
{
14861466
var command = new Command("the-command")
14871467
{
1488-
new Argument
1468+
new Argument<string[]>
14891469
{
14901470
Arity = new ArgumentArity(2, 3)
14911471
}
@@ -1605,15 +1585,9 @@ public void A_subcommand_wont_overflow_when_checking_maximum_argument_capcity()
16051585
{
16061586
// Tests bug identified in https://github.com/dotnet/command-line-api/issues/997
16071587

1608-
var argument1 = new Argument("arg1")
1609-
{
1610-
Arity = ArgumentArity.ExactlyOne
1611-
};
1588+
var argument1 = new Argument<string>("arg1");
16121589

1613-
var argument2 = new Argument<string[]>("arg2")
1614-
{
1615-
Arity = ArgumentArity.OneOrMore
1616-
};
1590+
var argument2 = new Argument<string[]>("arg2");
16171591

16181592
var command = new Command("subcommand")
16191593
{

src/System.CommandLine.Tests/ResourceLocalizationTests.cs

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,7 @@ public void Default_validation_messages_can_be_replaced_in_order_to_add_localiza
1919

2020
var command = new Command("the-command")
2121
{
22-
new Argument
23-
{
24-
Arity = ArgumentArity.ExactlyOne
25-
}
22+
new Argument<string>()
2623
};
2724
var parser = new Parser(new CommandLineConfiguration(command, resources: messages));
2825
var result = parser.Parse("the-command");
@@ -40,10 +37,7 @@ public void Default_validation_messages_can_be_replaced_using_CommandLineBuilder
4037

4138
var parser = new CommandLineBuilder(new Command("the-command")
4239
{
43-
new Argument
44-
{
45-
Arity = ArgumentArity.ExactlyOne
46-
}
40+
new Argument<string>()
4741
})
4842
.UseLocalizationResources(messages)
4943
.Build();

0 commit comments

Comments
 (0)