parse_test: test command with optional arg
License: MIT Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Christian Couder committed
May 20, 2015 at 22:47 UTC
be3b7e13e3a2edbb730ffef2240f50f754073b5a
1 file changed
+12
commands/cli/parse_test.go
+12
@@ -144,6 +144,12 @@ func TestArgumentParsing(t *testing.T) {
144
commands.StringArg("b", false, true, "another arg"),
145
},
146
},
147
+ "optionalsecond": {
148
+ Arguments: []commands.Argument{
149
+ commands.StringArg("a", true, false, "some arg"),
150
+ commands.StringArg("b", false, false, "another arg"),
151
+ },
152
+ },
153
"reversedoptional": {
154
Arguments: []commands.Argument{
155
commands.StringArg("a", false, false, "some arg"),
@@ -213,6 +219,12 @@ func TestArgumentParsing(t *testing.T) {
219
220
test([]string{"optional", "value!"}, nil, []string{"value!"})
221
test([]string{"optional"}, nil, []string{})
222
+ test([]string{"optional", "value1", "value2"}, nil, []string{"value1", "value2"})
223
+
224
+ test([]string{"optionalsecond", "value!"}, nil, []string{"value!"})
225
+ test([]string{"optionalsecond", "value1", "value2"}, nil, []string{"value1", "value2"})
226
+ testFail([]string{"optionalsecond"}, "didn't provide any args, 1 required")
227
+ testFail([]string{"optionalsecond", "value1", "value2", "value3"}, "provided too many args, takes 2 maximum")
228
229
test([]string{"reversedoptional", "value1", "value2"}, nil, []string{"value1", "value2"})
230
test([]string{"reversedoptional", "value!"}, nil, []string{"value!"})