@@ -529,6 +529,96 @@ public void RunOptions_Success_ListLongParameter () {
529529 Assert . Equal ( new List < long > { 100 , 100 , 100 , 100 , 100 , 100 } , result . Parameter3 ) ;
530530 }
531531
532+ public record RunOptions_Success_DoubleParameter_Class {
533+ public double Parameter1 { get ; set ; }
534+ public double Parameter2 { get ; set ; }
535+ public double Parameter3 { get ; set ; }
536+ }
537+
538+ [ Fact ]
539+ public void RunOptions_Success_DoubleParameter ( ) {
540+ //arrange
541+ var messages = new List < string > ( ) ;
542+ var fakeProvider = A . Fake < ICommandLineProvider > ( ) ;
543+ A . CallTo ( ( ) => fakeProvider . GetCommandLine ( ) ) . Returns ( "--parameter1=0.10 --parameter2=000000000.35 --parameter3=3333.33333333" ) ;
544+ A . CallTo ( ( ) => fakeProvider . WriteLine ( A < string > . _ ) ) . Invokes ( ( string fake ) => { messages . Add ( fake ) ; } ) ;
545+ var commandLine = new CommandLine ( fakeProvider ) ;
546+
547+ //act
548+ var result = commandLine
549+ . Application ( "TestApplication" , "1.0.0" )
550+ . AddOption ( fullName : "Parameter1" )
551+ . AddOption ( fullName : "Parameter2" )
552+ . AddOption ( fullName : "Parameter3" )
553+ . RunOptions < RunOptions_Success_DoubleParameter_Class > ( ) ;
554+
555+ //assert
556+ Assert . NotNull ( result ) ;
557+ Assert . Equal ( 0.10 , result . Parameter1 ) ;
558+ Assert . Equal ( 000000000.35 , result . Parameter2 ) ;
559+ Assert . Equal ( 3333.33333333 , result . Parameter3 ) ;
560+ }
561+
562+ public record RunOptions_Success_IEnumerableDoubleParameter_Class {
563+ public IEnumerable < double > Parameter1 { get ; set ; } = Enumerable . Empty < double > ( ) ;
564+ public IEnumerable < double > Parameter2 { get ; set ; } = Enumerable . Empty < double > ( ) ;
565+ public IEnumerable < double > Parameter3 { get ; set ; } = Enumerable . Empty < double > ( ) ;
566+ }
567+
568+ [ Fact ]
569+ public void RunOptions_Success_IEnumerableDoubleParameter ( ) {
570+ //arrange
571+ var messages = new List < string > ( ) ;
572+ var fakeProvider = A . Fake < ICommandLineProvider > ( ) ;
573+ A . CallTo ( ( ) => fakeProvider . GetCommandLine ( ) ) . Returns ( "--parameter1=0.1,0.2,0.3,0.4 --parameter2=8124.343,2374.234,1.23412,23423.423,81.24343,23742.34,123.412,2342.3423 --parameter3=100.0,100.01,100.02,100.03,100.04,100.05" ) ;
574+ A . CallTo ( ( ) => fakeProvider . WriteLine ( A < string > . _ ) ) . Invokes ( ( string fake ) => { messages . Add ( fake ) ; } ) ;
575+ var commandLine = new CommandLine ( fakeProvider ) ;
576+
577+ //act
578+ var result = commandLine
579+ . Application ( "TestApplication" , "1.0.0" )
580+ . AddOption ( fullName : "Parameter1" )
581+ . AddOption ( fullName : "Parameter2" )
582+ . AddOption ( fullName : "Parameter3" )
583+ . RunOptions < RunOptions_Success_IEnumerableDoubleParameter_Class > ( ) ;
584+
585+ //assert
586+ Assert . NotNull ( result ) ;
587+ Assert . Equal ( new List < double > { 0.1 , 0.2 , 0.3 , 0.4 } , result . Parameter1 ) ;
588+ Assert . Equal ( new List < double > { 8124.343 , 2374.234 , 1.23412 , 23423.423 , 81.24343 , 23742.34 , 123.412 , 2342.3423 } , result . Parameter2 ) ;
589+ Assert . Equal ( new List < double > { 100.0 , 100.01 , 100.02 , 100.03 , 100.04 , 100.05 } , result . Parameter3 ) ;
590+ }
591+
592+ public record RunOptions_Success_ListDoubleParameter_Class {
593+ public List < double > Parameter1 { get ; set ; } = Enumerable . Empty < double > ( ) . ToList ( ) ;
594+ public List < double > Parameter2 { get ; set ; } = Enumerable . Empty < double > ( ) . ToList ( ) ;
595+ public List < double > Parameter3 { get ; set ; } = Enumerable . Empty < double > ( ) . ToList ( ) ;
596+ }
597+
598+ [ Fact ]
599+ public void RunOptions_Success_ListDoubleParameter ( ) {
600+ //arrange
601+ var messages = new List < string > ( ) ;
602+ var fakeProvider = A . Fake < ICommandLineProvider > ( ) ;
603+ A . CallTo ( ( ) => fakeProvider . GetCommandLine ( ) ) . Returns ( "--parameter1=0.1,0.2,0.3,0.4 --parameter2=812434.3345345,23742.343243,12.3412345345,23423.423345345,8145646.24343,2374.234,12341.5465642,234234.56456423 --parameter3=100.0,100.1,100.2,100.3,100.4,100.5" ) ;
604+ A . CallTo ( ( ) => fakeProvider . WriteLine ( A < string > . _ ) ) . Invokes ( ( string fake ) => { messages . Add ( fake ) ; } ) ;
605+ var commandLine = new CommandLine ( fakeProvider ) ;
606+
607+ //act
608+ var result = commandLine
609+ . Application ( "TestApplication" , "1.0.0" )
610+ . AddOption ( fullName : "Parameter1" )
611+ . AddOption ( fullName : "Parameter2" )
612+ . AddOption ( fullName : "Parameter3" )
613+ . RunOptions < RunOptions_Success_ListDoubleParameter_Class > ( ) ;
614+
615+ //assert
616+ Assert . NotNull ( result ) ;
617+ Assert . Equal ( new List < double > { 0.1 , 0.2 , 0.3 , 0.4 } , result . Parameter1 ) ;
618+ Assert . Equal ( new List < double > { 812434.3345345 , 23742.343243 , 12.3412345345 , 23423.423345345 , 8145646.24343 , 2374.234 , 12341.5465642 , 234234.56456423 } , result . Parameter2 ) ;
619+ Assert . Equal ( new List < double > { 100.0 , 100.1 , 100.2 , 100.3 , 100.4 , 100.5 } , result . Parameter3 ) ;
620+ }
621+
532622 }
533623
534624}
0 commit comments