2
2
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
3
4
4
using FluentAssertions ;
5
+ using System . Collections . Generic ;
5
6
using System . CommandLine . Parsing ;
6
7
using System . Linq ;
7
8
using Xunit ;
@@ -305,7 +306,6 @@ public void When_multiple_options_are_configured_then_they_must_differ_by_name()
305
306
. Be ( "Alias '--same' is already in use." ) ;
306
307
}
307
308
308
-
309
309
[ Fact ]
310
310
public void When_Name_is_set_to_its_current_value_then_it_is_not_removed_from_aliases ( )
311
311
{
@@ -318,6 +318,142 @@ public void When_Name_is_set_to_its_current_value_then_it_is_not_removed_from_al
318
318
command . Aliases . Should ( ) . Contain ( "name" ) ;
319
319
}
320
320
321
+ [ Fact ]
322
+ public void Command_argument_of_string_defaults_to_empty_when_not_specified ( )
323
+ {
324
+ var argument = new Argument < string > ( ) ;
325
+ var command = new Command ( "mycommand" )
326
+ {
327
+ argument
328
+ } ;
329
+
330
+ var result = command . Parse ( "mycommand" ) ;
331
+ result . ValueForArgument ( argument )
332
+ . Should ( )
333
+ . BeEmpty ( ) ;
334
+ }
335
+
336
+ [ Fact ]
337
+ public void Command_argument_of_IEnumerable_of_T_defaults_to_empty_when_not_specified ( )
338
+ {
339
+ var argument = new Argument < IEnumerable < string > > ( ) ;
340
+ var command = new Command ( "mycommand" )
341
+ {
342
+ argument
343
+ } ;
344
+
345
+ var result = command . Parse ( "mycommand" ) ;
346
+ result . ValueForArgument ( argument )
347
+ . Should ( )
348
+ . BeEmpty ( ) ;
349
+ }
350
+
351
+ [ Fact ]
352
+ public void Command_argument_of_Array_defaults_to_empty_when_not_specified ( )
353
+ {
354
+ var argument = new Argument < string [ ] > ( ) ;
355
+ var command = new Command ( "mycommand" )
356
+ {
357
+ argument
358
+ } ;
359
+
360
+ var result = command . Parse ( "mycommand" ) ;
361
+ result . ValueForArgument ( argument )
362
+ . Should ( )
363
+ . BeEmpty ( ) ;
364
+ }
365
+
366
+ [ Fact ]
367
+ public void Command_argument_of_List_defaults_to_empty_when_not_specified ( )
368
+ {
369
+ var argument = new Argument < List < string > > ( ) ;
370
+ var command = new Command ( "mycommand" )
371
+ {
372
+ argument
373
+ } ;
374
+
375
+ var result = command . Parse ( "mycommand" ) ;
376
+ result . ValueForArgument ( argument )
377
+ . Should ( )
378
+ . BeEmpty ( ) ;
379
+ }
380
+
381
+ [ Fact ]
382
+ public void Command_argument_of_IList_of_T_defaults_to_empty_when_not_specified ( )
383
+ {
384
+ var argument = new Argument < IList < string > > ( ) ;
385
+ var command = new Command ( "mycommand" )
386
+ {
387
+ argument
388
+ } ;
389
+
390
+ var result = command . Parse ( "mycommand" ) ;
391
+ result . ValueForArgument ( argument )
392
+ . Should ( )
393
+ . BeEmpty ( ) ;
394
+ }
395
+
396
+ [ Fact ]
397
+ public void Command_argument_of_IList_defaults_to_empty_when_not_specified ( )
398
+ {
399
+ var argument = new Argument < System . Collections . IList > ( ) ;
400
+ var command = new Command ( "mycommand" )
401
+ {
402
+ argument
403
+ } ;
404
+
405
+ var result = command . Parse ( "mycommand" ) ;
406
+ result . ValueForArgument ( argument )
407
+ . Should ( )
408
+ . BeEmpty ( ) ;
409
+ }
410
+
411
+ [ Fact ]
412
+ public void Command_argument_of_ICollection_defaults_to_empty_when_not_specified ( )
413
+ {
414
+ var argument = new Argument < System . Collections . ICollection > ( ) ;
415
+ var command = new Command ( "mycommand" )
416
+ {
417
+ argument
418
+ } ;
419
+
420
+ var result = command . Parse ( "mycommand" ) ;
421
+ result . ValueForArgument ( argument )
422
+ . Should ( )
423
+ . BeEmpty ( ) ;
424
+ }
425
+
426
+ [ Fact ]
427
+ public void Command_argument_of_IEnumerable_defaults_to_empty_when_not_specified ( )
428
+ {
429
+ var argument = new Argument < System . Collections . IEnumerable > ( ) ;
430
+ var command = new Command ( "mycommand" )
431
+ {
432
+ argument
433
+ } ;
434
+
435
+ var result = command . Parse ( "mycommand" ) ;
436
+ result . ValueForArgument ( argument )
437
+ . Should ( )
438
+ . BeEmpty ( ) ;
439
+ }
440
+
441
+ [ Fact ]
442
+ public void Command_argument_of_ICollection_of_T_defaults_to_empty_when_not_specified ( )
443
+ {
444
+ var argument = new Argument < ICollection < string > > ( ) ;
445
+ var command = new Command ( "mycommand" )
446
+ {
447
+ argument
448
+ } ;
449
+
450
+ var result = command . Parse ( "mycommand" ) ;
451
+ result . ValueForArgument ( argument )
452
+ . Should ( )
453
+ . BeEmpty ( ) ;
454
+ }
455
+
456
+
321
457
protected override Symbol CreateSymbol ( string name ) => new Command ( name ) ;
322
458
}
323
459
}
0 commit comments