7using System.Threading.Tasks;
16 var expected =
string.Empty;
18 .WithParsed(opts => expected = opts.StringValue);
20 "value".Should().BeEquivalentTo(expected);
26 var expected =
string.Empty;
28 .WithParsedAsync(opts => Task.Run(() => expected = opts.StringValue));
30 "value".Should().BeEquivalentTo(expected);
36 var expected =
string.Empty;
38 new[] {
"clone",
"https://value.org/user/file.git" })
39 .WithParsed<Add_Verb>(opts => expected =
"wrong1")
40 .WithParsed<
Commit_Verb>(opts => expected =
"wrong2")
41 .WithParsed<Clone_Verb>(opts => expected = opts.Urls.First());
43 "https://value.org/user/file.git".Should().BeEquivalentTo(expected);
49 var expected =
string.Empty;
51 new[] {
"clone",
"https://value.org/user/file.git" });
53 await parsedArguments.WithParsedAsync<
Add_Verb>(opts => Task.Run(() => expected =
"wrong1"));
54 await parsedArguments.WithParsedAsync<
Commit_Verb>(opts => Task.Run(() => expected =
"wrong2"));
55 await parsedArguments.WithParsedAsync<
Clone_Verb>(opts => Task.Run(() => expected = opts.Urls.First()));
57 "https://value.org/user/file.git".Should().BeEquivalentTo(expected);
63 var expected =
"a default";
65 .WithNotParsed(_ => expected =
"changed");
67 "changed".Should().BeEquivalentTo(expected);
73 var expected =
"a default";
75 .WithNotParsedAsync(_ => Task.Run(() => expected =
"changed"));
77 "changed".Should().BeEquivalentTo(expected);
83 var expected =
"a default";
85 .WithParsed<Add_Verb>(opts => expected =
"wrong1")
86 .WithParsed<
Commit_Verb>(opts => expected =
"wrong2")
87 .WithParsed<Clone_Verb>(opts => expected =
"wrong3")
88 .WithNotParsed(_ => expected =
"changed");
90 "changed".Should().BeEquivalentTo(expected);
96 var expected =
"a default";
99 await parsedArguments.WithParsedAsync<
Add_Verb>(opts => Task.Run(() => expected =
"wrong1"));
100 await parsedArguments.WithParsedAsync<
Commit_Verb>(opts => Task.Run(() => expected =
"wrong2"));
101 await parsedArguments.WithParsedAsync<
Clone_Verb>(opts => Task.Run(() => expected =
"wrong3"));
102 await parsedArguments.WithNotParsedAsync(_ => Task.Run(() => expected =
"changed"));
104 "changed".Should().BeEquivalentTo(expected);
110 var expected =
string.Empty;
112 .WithParsed(opts => expected = opts.StringValue)
113 .WithNotParsed(_ => expected =
"changed");
115 "value".Should().BeEquivalentTo(expected);
121 var expected =
string.Empty;
124 await parsedArguments.WithParsedAsync(opts => Task.Run(() => expected = opts.StringValue));
125 await parsedArguments.WithNotParsedAsync(_ => Task.Run(() => expected =
"changed"));
127 "value".Should().BeEquivalentTo(expected);
133 var expected =
"a default";
135 .WithParsed(opts => expected = opts.StringValue)
136 .WithNotParsed(_ => expected =
"changed");
138 "changed".Should().BeEquivalentTo(expected);
144 var expected =
"a default";
147 await parsedArguments.WithParsedAsync(opts => Task.Run(() => expected = opts.StringValue));
148 await parsedArguments.WithNotParsedAsync(_ => Task.Run(() => expected =
"changed"));
150 "changed".Should().BeEquivalentTo(expected);
157 .MapResult(_ => 0, _ => -1);
159 0.Should().Be(expected);
166 new[] {
"clone",
"https://value.org/user/file.git" })
173 2.Should().Be(expected);
180 .MapResult(_ => 0, _ => -1);
182 (-1).Should().Be(expected);
189 new[] {
"undefined",
"-xyz" })
196 3.Should().Be(expected);
202 var expected =
string.Empty;
204 new[] {
"derivedadd",
"dummy.bin" })
205 .WithParsed<Add_Verb>(opts => expected =
"wrong1")
206 .WithParsed<
Commit_Verb>(opts => expected =
"wrong2")
207 .WithParsed<Clone_Verb>(opts => expected =
"wrong3")
210 "dummy.bin".Should().BeEquivalentTo(expected);
216 var expected =
string.Empty;
218 new[] {
"derivedadd",
"dummy.bin" });
220 await parsedArguments.WithParsedAsync<
Add_Verb>(opts => Task.Run(() => expected =
"wrong1"));
221 await parsedArguments.WithParsedAsync<
Commit_Verb>(opts => Task.Run(() => expected =
"wrong2"));
222 await parsedArguments.WithParsedAsync<
Clone_Verb>(opts => Task.Run(() => expected =
"wrong3"));
225 "dummy.bin".Should().BeEquivalentTo(expected);
232 new[] {
"derivedadd",
"dummy.bin" })
237 1.Should().Be(expected);
244 new[] {
"derivedadd",
"dummy.bin" })
253 4.Should().Be(expected);
Provides methods to parse command line arguments.
ParserResult< object > ParseArguments(IEnumerable< string > args, params Type[] types)
Parses a string array of command line arguments for verb commands scenario, constructing the proper i...
static Parser Default
Gets the singleton instance created with basic defaults.
static void Turn_sucessful_parsing_into_exit_code_for_single_base_verbs()
static async Task Invoke_parsed_lambda_when_parsed_for_base_verbsAsync()
static void Invoke_parsed_lambda_when_parsed()
static void Turn_failed_parsing_into_exit_code()
static void Invoke_proper_lambda_when_not_parsed()
static async Task Invoke_not_parsed_lambda_when_not_parsedAsync()
static void Invoke_parsed_lambda_when_parsed_for_base_verbs()
static void Invoke_proper_lambda_when_parsed()
static async Task Invoke_parsed_lambda_when_parsedAsync()
static async Task Invoke_proper_lambda_when_not_parsedAsync()
static void Turn_sucessful_parsing_into_exit_code()
static async Task Invoke_not_parsed_lambda_when_parsed_for_verbsAsync()
static void Invoke_parsed_lambda_when_parsed_for_verbs()
static void Invoke_not_parsed_lambda_when_parsed_for_verbs()
static void Invoke_not_parsed_lambda_when_not_parsed()
static void Turn_sucessful_parsing_into_exit_code_for_verbs()
static void Turn_sucessful_parsing_into_exit_code_for_multiple_base_verbs()
static async Task Invoke_parsed_lambda_when_parsed_for_verbsAsync()
static async Task Invoke_proper_lambda_when_parsedAsync()
static void Turn_failed_parsing_into_exit_code_for_verbs()