4using System.Collections.Generic;
23 false,
string.Empty,
Maybe.Nothing<
int>(),
Maybe.Nothing<
int>(),
',',
null,
string.Empty,
string.Empty,
new List<string>(), typeof(IEnumerable<string>),
TargetType.Sequence,
string.Empty)};
29 Enumerable.Empty<
Token>().Concat(
new[] { Token.Name(
"i"), Token.Value(
"10"),
30 Token.Name(
"string-seq"), Token.Value(
"aaa,bb,cccc"), Token.Name(
"switch") }),
31 Enumerable.Empty<
Error>()),
46 false,
string.Empty,
Maybe.Nothing<
int>(),
Maybe.Nothing<
int>(),
',',
null,
string.Empty,
string.Empty,
new List<string>(), typeof(IEnumerable<string>),
TargetType.Sequence,
string.Empty)};
52 Enumerable.Empty<
Token>().Concat(
new[] { Token.Name(
"x"),
53 Token.Name(
"string-seq"), Token.Value(
"aaa,bb,cccc"), Token.Name(
"switch") }),
54 Enumerable.Empty<
Error>()),
71 var args =
new[] {
"--connectionString=Server=localhost;Data Source=(LocalDB)\v12.0;Initial Catalog=temp;" };
75 var tokens = result.SucceededWith();
77 Assert.NotNull(tokens);
78 Assert.Equal(2, tokens.Count());
79 Assert.Equal(
"connectionString", tokens.First().Text);
80 Assert.Equal(
"Server=localhost;Data Source=(LocalDB)\v12.0;Initial Catalog=temp;", tokens.Last().Text);
86 var args =
new[] {
"--option1 = fail",
"--option2= succeed" };
90 var errors = result.SuccessMessages().ToArray();
92 Assert.NotNull(errors);
93 Assert.Single(errors);
94 Assert.Equal(
ErrorType.BadFormatTokenError, errors.First().Tag);
96 var tokens = result.SucceededWith().ToArray();
97 Assert.NotNull(tokens);
98 Assert.Equal(2, tokens.Count());
99 Assert.Equal(
TokenType.Name, tokens.First().Tag);
100 Assert.Equal(
TokenType.Value, tokens.Last().Tag);
101 Assert.Equal(
"option2", tokens.First().Text);
102 Assert.Equal(
" succeed", tokens.Last().Text);
107 [InlineData(
new[] {
"-a",
"-" }, 2,
"a",
"-")]
108 [InlineData(
new[] {
"--file",
"-" }, 2,
"file",
"-")]
109 [InlineData(
new[] {
"-f-" }, 2,
"f",
"-")]
110 [InlineData(
new[] {
"--file=-" }, 2,
"file",
"-")]
111 [InlineData(
new[] {
"-a",
"--" }, 2,
"a",
"--")]
117 var tokens = result.SucceededWith().ToList();
119 tokens.Should().NotBeNull();
120 tokens.Count.Should().Be(countExcepted);
121 tokens.First().Text.Should().Be(first);
122 tokens.Last().Text.Should().Be(last);
The Maybe type models an optional value. A value of type Maybe a either contains a value of type a (r...
static Result< IEnumerable< Token >, Error > Tokenize(IEnumerable< string > arguments, Func< string, NameLookupResult > nameLookup)
static Result< IEnumerable< Token >, Error > ExplodeOptionList(Result< IEnumerable< Token >, Error > tokenizerResult, Func< string, Maybe< char > > optionSequenceWithSeparatorLookup)
static Maybe< char > HavingSeparator(string name, IEnumerable< OptionSpecification > specifications, StringComparer comparer)
static Token Value(string text)
static Token Name(string text)
void Explode_scalar_with_separator_in_odd_args_input_returns_sequence()
void Should_properly_parse_option_with_equals_in_value()
void Explode_scalar_with_separator_in_even_args_input_returns_sequence()
void Single_dash_as_a_value(string[] args, int countExcepted, string first, string last)
void Should_return_error_if_option_format_with_equals_is_not_correct()
Represents the result of a successful computation.
Represents the result of a computation.
ErrorType
Discriminator enumeration of CommandLine.Error derivates.