@@ -313,7 +313,7 @@ public void RunOptions_Success_SingleParameter () {
313313 //act
314314 var result = commandLine
315315 . Application ( "TestApplication" , "1.0.0" )
316- . AddOption ( fullName : "Parameter1" )
316+ . AddOption ( fullName : "Parameter1" )
317317 . RunOptions < RunOptions_Success_SingleParameter_Class > ( ) ;
318318
319319 //assert
@@ -349,6 +349,186 @@ public void RunOptions_Success_FewParameters () {
349349 Assert . Equal ( 144 , result ? . Parameter3 ?? null ) ;
350350 }
351351
352+ public record RunOptions_Success_IntParameter_Class {
353+ public int Parameter1 { get ; set ; }
354+ public int Parameter2 { get ; set ; }
355+ public int Parameter3 { get ; set ; }
356+ }
357+
358+ [ Fact ]
359+ public void RunOptions_Success_IntParameter ( ) {
360+ //arrange
361+ var messages = new List < string > ( ) ;
362+ var fakeProvider = A . Fake < ICommandLineProvider > ( ) ;
363+ A . CallTo ( ( ) => fakeProvider . GetCommandLine ( ) ) . Returns ( "--parameter1=1 --parameter2=100000 --parameter3=1212121212" ) ;
364+ A . CallTo ( ( ) => fakeProvider . WriteLine ( A < string > . _ ) ) . Invokes ( ( string fake ) => { messages . Add ( fake ) ; } ) ;
365+ var commandLine = new CommandLine ( fakeProvider ) ;
366+
367+ //act
368+ var result = commandLine
369+ . Application ( "TestApplication" , "1.0.0" )
370+ . AddOption ( fullName : "Parameter1" )
371+ . AddOption ( fullName : "Parameter2" )
372+ . AddOption ( fullName : "Parameter3" )
373+ . RunOptions < RunOptions_Success_IntParameter_Class > ( ) ;
374+
375+ //assert
376+ Assert . NotNull ( result ) ;
377+ Assert . Equal ( 1 , result . Parameter1 ) ;
378+ Assert . Equal ( 100000 , result . Parameter2 ) ;
379+ Assert . Equal ( 1212121212 , result . Parameter3 ) ;
380+ }
381+
382+ public record RunOptions_Success_IEnumerableIntParameter_Class {
383+ public IEnumerable < int > Parameter1 { get ; set ; } = Enumerable . Empty < int > ( ) ;
384+ public IEnumerable < int > Parameter2 { get ; set ; } = Enumerable . Empty < int > ( ) ;
385+ public IEnumerable < int > Parameter3 { get ; set ; } = Enumerable . Empty < int > ( ) ;
386+ }
387+
388+ [ Fact ]
389+ public void RunOptions_Success_IEnumerableIntParameter ( ) {
390+ //arrange
391+ var messages = new List < string > ( ) ;
392+ var fakeProvider = A . Fake < ICommandLineProvider > ( ) ;
393+ A . CallTo ( ( ) => fakeProvider . GetCommandLine ( ) ) . Returns ( "--parameter1=1,2,3,4 --parameter2=8124343,2374234,123412,23423423,8124343,2374234,123412,23423423 --parameter3=100,100,100,100,100,100" ) ;
394+ A . CallTo ( ( ) => fakeProvider . WriteLine ( A < string > . _ ) ) . Invokes ( ( string fake ) => { messages . Add ( fake ) ; } ) ;
395+ var commandLine = new CommandLine ( fakeProvider ) ;
396+
397+ //act
398+ var result = commandLine
399+ . Application ( "TestApplication" , "1.0.0" )
400+ . AddOption ( fullName : "Parameter1" )
401+ . AddOption ( fullName : "Parameter2" )
402+ . AddOption ( fullName : "Parameter3" )
403+ . RunOptions < RunOptions_Success_IEnumerableIntParameter_Class > ( ) ;
404+
405+ //assert
406+ Assert . NotNull ( result ) ;
407+ Assert . Equal ( new List < int > { 1 , 2 , 3 , 4 } , result . Parameter1 ) ;
408+ Assert . Equal ( new List < int > { 8124343 , 2374234 , 123412 , 23423423 , 8124343 , 2374234 , 123412 , 23423423 } , result . Parameter2 ) ;
409+ Assert . Equal ( new List < int > { 100 , 100 , 100 , 100 , 100 , 100 } , result . Parameter3 ) ;
410+ }
411+
412+ public record RunOptions_Success_ListIntParameter_Class {
413+ public List < int > Parameter1 { get ; set ; } = Enumerable . Empty < int > ( ) . ToList ( ) ;
414+ public List < int > Parameter2 { get ; set ; } = Enumerable . Empty < int > ( ) . ToList ( ) ;
415+ public List < int > Parameter3 { get ; set ; } = Enumerable . Empty < int > ( ) . ToList ( ) ;
416+ }
417+
418+ [ Fact ]
419+ public void RunOptions_Success_ListIntParameter ( ) {
420+ //arrange
421+ var messages = new List < string > ( ) ;
422+ var fakeProvider = A . Fake < ICommandLineProvider > ( ) ;
423+ A . CallTo ( ( ) => fakeProvider . GetCommandLine ( ) ) . Returns ( "--parameter1=1,2,3,4 --parameter2=8124343,2374234,123412,23423423,8124343,2374234,123412,23423423 --parameter3=100,100,100,100,100,100" ) ;
424+ A . CallTo ( ( ) => fakeProvider . WriteLine ( A < string > . _ ) ) . Invokes ( ( string fake ) => { messages . Add ( fake ) ; } ) ;
425+ var commandLine = new CommandLine ( fakeProvider ) ;
426+
427+ //act
428+ var result = commandLine
429+ . Application ( "TestApplication" , "1.0.0" )
430+ . AddOption ( fullName : "Parameter1" )
431+ . AddOption ( fullName : "Parameter2" )
432+ . AddOption ( fullName : "Parameter3" )
433+ . RunOptions < RunOptions_Success_ListIntParameter_Class > ( ) ;
434+
435+ //assert
436+ Assert . NotNull ( result ) ;
437+ Assert . Equal ( new List < int > { 1 , 2 , 3 , 4 } , result . Parameter1 ) ;
438+ Assert . Equal ( new List < int > { 8124343 , 2374234 , 123412 , 23423423 , 8124343 , 2374234 , 123412 , 23423423 } , result . Parameter2 ) ;
439+ Assert . Equal ( new List < int > { 100 , 100 , 100 , 100 , 100 , 100 } , result . Parameter3 ) ;
440+ }
441+
442+ public record RunOptions_Success_LongParameter_Class {
443+ public long Parameter1 { get ; set ; }
444+ public long Parameter2 { get ; set ; }
445+ public long Parameter3 { get ; set ; }
446+ }
447+
448+ [ Fact ]
449+ public void RunOptions_Success_LongParameter ( ) {
450+ //arrange
451+ var messages = new List < string > ( ) ;
452+ var fakeProvider = A . Fake < ICommandLineProvider > ( ) ;
453+ A . CallTo ( ( ) => fakeProvider . GetCommandLine ( ) ) . Returns ( "--parameter1=1 --parameter2=10000000000 --parameter3=121212345231212" ) ;
454+ A . CallTo ( ( ) => fakeProvider . WriteLine ( A < string > . _ ) ) . Invokes ( ( string fake ) => { messages . Add ( fake ) ; } ) ;
455+ var commandLine = new CommandLine ( fakeProvider ) ;
456+
457+ //act
458+ var result = commandLine
459+ . Application ( "TestApplication" , "1.0.0" )
460+ . AddOption ( fullName : "Parameter1" )
461+ . AddOption ( fullName : "Parameter2" )
462+ . AddOption ( fullName : "Parameter3" )
463+ . RunOptions < RunOptions_Success_LongParameter_Class > ( ) ;
464+
465+ //assert
466+ Assert . NotNull ( result ) ;
467+ Assert . Equal ( 1 , result . Parameter1 ) ;
468+ Assert . Equal ( 10000000000 , result . Parameter2 ) ;
469+ Assert . Equal ( 121212345231212 , result . Parameter3 ) ;
470+ }
471+
472+ public record RunOptions_Success_IEnumerableLongParameter_Class {
473+ public IEnumerable < long > Parameter1 { get ; set ; } = Enumerable . Empty < long > ( ) ;
474+ public IEnumerable < long > Parameter2 { get ; set ; } = Enumerable . Empty < long > ( ) ;
475+ public IEnumerable < long > Parameter3 { get ; set ; } = Enumerable . Empty < long > ( ) ;
476+ }
477+
478+ [ Fact ]
479+ public void RunOptions_Success_IEnumerableLongParameter ( ) {
480+ //arrange
481+ var messages = new List < string > ( ) ;
482+ var fakeProvider = A . Fake < ICommandLineProvider > ( ) ;
483+ A . CallTo ( ( ) => fakeProvider . GetCommandLine ( ) ) . Returns ( "--parameter1=1,2,3,4 --parameter2=8124343,2374234,123412,23423423,8124343,2374234,123412,23423423 --parameter3=100,100,100,100,100,100" ) ;
484+ A . CallTo ( ( ) => fakeProvider . WriteLine ( A < string > . _ ) ) . Invokes ( ( string fake ) => { messages . Add ( fake ) ; } ) ;
485+ var commandLine = new CommandLine ( fakeProvider ) ;
486+
487+ //act
488+ var result = commandLine
489+ . Application ( "TestApplication" , "1.0.0" )
490+ . AddOption ( fullName : "Parameter1" )
491+ . AddOption ( fullName : "Parameter2" )
492+ . AddOption ( fullName : "Parameter3" )
493+ . RunOptions < RunOptions_Success_IEnumerableLongParameter_Class > ( ) ;
494+
495+ //assert
496+ Assert . NotNull ( result ) ;
497+ Assert . Equal ( new List < long > { 1 , 2 , 3 , 4 } , result . Parameter1 ) ;
498+ Assert . Equal ( new List < long > { 8124343 , 2374234 , 123412 , 23423423 , 8124343 , 2374234 , 123412 , 23423423 } , result . Parameter2 ) ;
499+ Assert . Equal ( new List < long > { 100 , 100 , 100 , 100 , 100 , 100 } , result . Parameter3 ) ;
500+ }
501+
502+ public record RunOptions_Success_ListLongParameter_Class {
503+ public List < long > Parameter1 { get ; set ; } = Enumerable . Empty < long > ( ) . ToList ( ) ;
504+ public List < long > Parameter2 { get ; set ; } = Enumerable . Empty < long > ( ) . ToList ( ) ;
505+ public List < long > Parameter3 { get ; set ; } = Enumerable . Empty < long > ( ) . ToList ( ) ;
506+ }
507+
508+ [ Fact ]
509+ public void RunOptions_Success_ListLongParameter ( ) {
510+ //arrange
511+ var messages = new List < string > ( ) ;
512+ var fakeProvider = A . Fake < ICommandLineProvider > ( ) ;
513+ A . CallTo ( ( ) => fakeProvider . GetCommandLine ( ) ) . Returns ( "--parameter1=1,2,3,4 --parameter2=8124343345345,23742343243,123412345345,23423423345345,814564624343,2374234,123415465642,23423456456423 --parameter3=100,100,100,100,100,100" ) ;
514+ A . CallTo ( ( ) => fakeProvider . WriteLine ( A < string > . _ ) ) . Invokes ( ( string fake ) => { messages . Add ( fake ) ; } ) ;
515+ var commandLine = new CommandLine ( fakeProvider ) ;
516+
517+ //act
518+ var result = commandLine
519+ . Application ( "TestApplication" , "1.0.0" )
520+ . AddOption ( fullName : "Parameter1" )
521+ . AddOption ( fullName : "Parameter2" )
522+ . AddOption ( fullName : "Parameter3" )
523+ . RunOptions < RunOptions_Success_ListLongParameter_Class > ( ) ;
524+
525+ //assert
526+ Assert . NotNull ( result ) ;
527+ Assert . Equal ( new List < long > { 1 , 2 , 3 , 4 } , result . Parameter1 ) ;
528+ Assert . Equal ( new List < long > { 8124343345345 , 23742343243 , 123412345345 , 23423423345345 , 814564624343 , 2374234 , 123415465642 , 23423456456423 } , result . Parameter2 ) ;
529+ Assert . Equal ( new List < long > { 100 , 100 , 100 , 100 , 100 , 100 } , result . Parameter3 ) ;
530+ }
531+
352532 }
353533
354534}
0 commit comments