@@ -991,6 +991,9 @@ public void RunOptions_Success_RangeIntParameter_NotParsed () {
991991 var result = commandLine
992992 . Application ( "TestApplication" , "1.0.0" )
993993 . AddOption ( fullName : "Parameter1" )
994+ . AddOption ( fullName : "Parameter2" )
995+ . AddOption ( fullName : "Parameter3" )
996+ . AddOption ( fullName : "Parameter4" )
994997 . RunOptions < RunOptions_Success_RangeIntParameter_NotParsed_Class > ( ) ;
995998
996999 //assert
@@ -1005,6 +1008,100 @@ public void RunOptions_Success_RangeIntParameter_NotParsed () {
10051008 Assert . Equal ( 0 , result . Parameter4 . End ) ;
10061009 }
10071010
1011+ public record RunOptions_Success_RangeDoubleParameter_NotParsed_Class {
1012+
1013+ public CommandLineRange < double > Parameter1 { get ; set ; } = new CommandLineRange < double > ( ) ;
1014+
1015+ public CommandLineRange < double > Parameter2 { get ; set ; } = new CommandLineRange < double > ( ) ;
1016+
1017+ public CommandLineRange < double > Parameter3 { get ; set ; } = new CommandLineRange < double > ( ) ;
1018+
1019+ public CommandLineRange < double > Parameter4 { get ; set ; } = new CommandLineRange < double > ( ) ;
1020+
1021+ public CommandLineRange < double > Parameter5 { get ; set ; } = new CommandLineRange < double > ( ) ;
1022+
1023+ }
1024+
1025+ [ Fact ]
1026+ public void RunOptions_Success_RangeDoubleParameter ( ) {
1027+ //arrange
1028+ var messages = new List < string > ( ) ;
1029+ var fakeProvider = A . Fake < ICommandLineProvider > ( ) ;
1030+ A . CallTo ( ( ) => fakeProvider . GetCommandLine ( ) ) . Returns ( "--parameter1=235.30 --parameter2=- --parameter3=-100.30 --parameter4=178.56- --parameter5=178.56-895.450" ) ;
1031+ A . CallTo ( ( ) => fakeProvider . WriteLine ( A < string > . _ ) ) . Invokes ( ( string fake ) => { messages . Add ( fake ) ; } ) ;
1032+ var commandLine = new CommandLine ( fakeProvider ) ;
1033+
1034+ //act
1035+ var result = commandLine
1036+ . Application ( "TestApplication" , "1.0.0" )
1037+ . AddOption ( fullName : "Parameter1" )
1038+ . AddOption ( fullName : "Parameter2" )
1039+ . AddOption ( fullName : "Parameter3" )
1040+ . AddOption ( fullName : "Parameter4" )
1041+ . AddOption ( fullName : "Parameter5" )
1042+ . RunOptions < RunOptions_Success_RangeDoubleParameter_NotParsed_Class > ( ) ;
1043+
1044+ //assert
1045+ Assert . NotNull ( result ) ;
1046+ Assert . Equal ( 0 , result . Parameter1 . Start ) ;
1047+ Assert . Equal ( 0 , result . Parameter1 . End ) ;
1048+ Assert . Equal ( 0 , result . Parameter2 . Start ) ;
1049+ Assert . Equal ( 0 , result . Parameter2 . End ) ;
1050+ Assert . Equal ( 0 , result . Parameter3 . Start ) ;
1051+ Assert . Equal ( 0 , result . Parameter3 . End ) ;
1052+ Assert . Equal ( 0 , result . Parameter4 . Start ) ;
1053+ Assert . Equal ( 0 , result . Parameter4 . End ) ;
1054+ Assert . Equal ( 178.56 , result . Parameter5 . Start ) ;
1055+ Assert . Equal ( 895.450 , result . Parameter5 . End ) ;
1056+ }
1057+
1058+ public record RunOptions_Success_RangeFloatParameter_Class {
1059+
1060+ public CommandLineRange < float > Parameter1 { get ; set ; } = new CommandLineRange < float > ( ) ;
1061+
1062+ public CommandLineRange < float > Parameter2 { get ; set ; } = new CommandLineRange < float > ( ) ;
1063+
1064+ public CommandLineRange < float > Parameter3 { get ; set ; } = new CommandLineRange < float > ( ) ;
1065+
1066+ public CommandLineRange < float > Parameter4 { get ; set ; } = new CommandLineRange < float > ( ) ;
1067+
1068+ public CommandLineRange < float > Parameter5 { get ; set ; } = new CommandLineRange < float > ( ) ;
1069+
1070+ }
1071+
1072+ [ Fact ]
1073+ public void RunOptions_Success_RangeFloatParameter ( ) {
1074+ //arrange
1075+ var messages = new List < string > ( ) ;
1076+ var fakeProvider = A . Fake < ICommandLineProvider > ( ) ;
1077+ A . CallTo ( ( ) => fakeProvider . GetCommandLine ( ) ) . Returns ( "--parameter1=235.30 --parameter2=- --parameter3=-100.30 --parameter4=178.56- --parameter5=178.56-895.450" ) ;
1078+ A . CallTo ( ( ) => fakeProvider . WriteLine ( A < string > . _ ) ) . Invokes ( ( string fake ) => { messages . Add ( fake ) ; } ) ;
1079+ var commandLine = new CommandLine ( fakeProvider ) ;
1080+
1081+ //act
1082+ var result = commandLine
1083+ . Application ( "TestApplication" , "1.0.0" )
1084+ . AddOption ( fullName : "Parameter1" )
1085+ . AddOption ( fullName : "Parameter2" )
1086+ . AddOption ( fullName : "Parameter3" )
1087+ . AddOption ( fullName : "Parameter4" )
1088+ . AddOption ( fullName : "Parameter5" )
1089+ . RunOptions < RunOptions_Success_RangeFloatParameter_Class > ( ) ;
1090+
1091+ //assert
1092+ Assert . NotNull ( result ) ;
1093+ Assert . Equal ( 0 , result . Parameter1 . Start ) ;
1094+ Assert . Equal ( 0 , result . Parameter1 . End ) ;
1095+ Assert . Equal ( 0 , result . Parameter2 . Start ) ;
1096+ Assert . Equal ( 0 , result . Parameter2 . End ) ;
1097+ Assert . Equal ( 0 , result . Parameter3 . Start ) ;
1098+ Assert . Equal ( 0 , result . Parameter3 . End ) ;
1099+ Assert . Equal ( 0 , result . Parameter4 . Start ) ;
1100+ Assert . Equal ( 0 , result . Parameter4 . End ) ;
1101+ Assert . Equal ( 178.56f , result . Parameter5 . Start ) ;
1102+ Assert . Equal ( 895.450f , result . Parameter5 . End ) ;
1103+ }
1104+
10081105 public class DatabaseAdjustments {
10091106
10101107 public IEnumerable < string > Files { get ; set ; } = Enumerable . Empty < string > ( ) ;
0 commit comments