示例#1
0
 public void ParserGroupsQuotedArguments()
 {
     // feature enable "a b cdef"
     // => feature
     // => enable
     // => a b cdef
     var result = new CommandLineParser().Parse("feature enable \"a b cdef\"").ToList();
     Assert.NotNull(result);
     Assert.Equal(3, result.Count);
     Assert.Equal("feature", result[0]);
     Assert.Equal("enable", result[1]);
     Assert.Equal("a b cdef", result[2]);
 }
示例#2
0
 public void ParserBackslashDoesnotEscapeOtherCharacters()
 {
     // feature enable \a
     // => feature
     // => enable
     // => \a
     var result = new CommandLineParser().Parse("feature enable \\a").ToList();
     Assert.NotNull(result);
     Assert.Equal(3, result.Count);
     Assert.Equal("feature", result[0]);
     Assert.Equal("enable", result[1]);
     Assert.Equal("\\a", result[2]);
 }
 public void ParserUnderstandsQuotesInsideArgument()
 {
     // feature enable /foo:"a b cdef"
     // => feature
     // => enable
     // => /foo:a b cdef
     var result = new CommandLineParser().Parse("feature enable /foo:\"a b cdef\"").ToList();
     Assert.NotNull(result);
     Assert.Equal(3, result.Count);
     Assert.Equal("feature", result[0]);
     Assert.Equal("enable", result[1]);
     Assert.Equal("/foo:a b cdef", result[2]);
 }
 public void ParserIgnoresExtraSpaces()
 {
     //  a    b    cdef
     // => a
     // => b
     // => cdef
     var result = new CommandLineParser().Parse("  a    b    cdef   ").ToList();
     Assert.NotNull(result);
     Assert.Equal(3, result.Count);
     Assert.Equal("a", result[0]);
     Assert.Equal("b", result[1]);
     Assert.Equal("cdef", result[2]);
 }
 public void ParserUnderstandsSimpleArguments()
 {
     // a b cdef
     // => a
     // => b
     // => cdef
     var result = new CommandLineParser().Parse("a b cdef").ToList();
     Assert.NotNull(result);
     Assert.Equal(3, result.Count);
     Assert.Equal("a", result[0]);
     Assert.Equal("b", result[1]);
     Assert.Equal("cdef", result[2]);
 }
示例#6
0
 public void ParserBackslashEscapesQuote()
 {
     // feature enable \"a b cdef\"
     // => feature
     // => enable
     // => "a
     // => b
     // => cdef"
     var result = new CommandLineParser().Parse("feature enable \\\"a b cdef\\\"").ToList();
     Assert.NotNull(result);
     Assert.Equal(5, result.Count);
     Assert.Equal("feature", result[0]);
     Assert.Equal("enable", result[1]);
     Assert.Equal("\"a", result[2]);
     Assert.Equal("b", result[3]);
     Assert.Equal("cdef\"", result[4]);
 }
示例#7
0
 public void ParserUnderstandsEmptyArgument()
 {
     // feature enable ""
     // => feature
     // => enable
     // => <empty arg>
     var result = new CommandLineParser().Parse("feature enable \"\"").ToList();
     Assert.NotNull(result);
     Assert.Equal(3, result.Count);
     Assert.Equal("feature", result[0]);
     Assert.Equal("enable", result[1]);
     Assert.Equal("", result[2]);
 }
示例#8
0
 public void ParserUnderstandsTrailingBackslash2()
 {
     // feature enable b\
     // => feature
     // => enable
     // => b\
     var result = new CommandLineParser().Parse("feature enable b\\").ToList();
     Assert.NotNull(result);
     Assert.Equal(3, result.Count);
     Assert.Equal("feature", result[0]);
     Assert.Equal("enable", result[1]);
     Assert.Equal("b\\", result[2]);
 }
示例#9
0
 public void ParserUnderstandsEmptyArgument3()
 {
     // ""
     // => <empty arg>
     var result = new CommandLineParser().Parse("\"\"").ToList();
     Assert.NotNull(result);
     Assert.Equal(1, result.Count);
     Assert.Equal("", result[0]);
 }