|
1 | 1 | using FakeItEasy; |
2 | 2 | using FlowCommandLine; |
| 3 | +using FlowCommandLine.SpecialTypes; |
3 | 4 |
|
4 | 5 | namespace FlowCommandLineTests { |
5 | 6 |
|
@@ -938,6 +939,72 @@ public void RunOptions_Success_BooleanParameter_AsFalse_NotFilled () { |
938 | 939 | Assert.Equal ( "Muhaha", result.Parameter3 ); |
939 | 940 | } |
940 | 941 |
|
| 942 | + public record RunOptions_Success_RangeIntParameter_Completed_Class { |
| 943 | + |
| 944 | + public CommandLineRange<int> Parameter1 { get; set; } = new CommandLineRange<int> (); |
| 945 | + |
| 946 | + } |
| 947 | + |
| 948 | + [Fact] |
| 949 | + public void RunOptions_Success_RangeIntParameter_Completed () { |
| 950 | + //arrange |
| 951 | + var messages = new List<string> (); |
| 952 | + var fakeProvider = A.Fake<ICommandLineProvider> (); |
| 953 | + A.CallTo ( () => fakeProvider.GetCommandLine () ).Returns ( "--parameter1=1-100" ); |
| 954 | + A.CallTo ( () => fakeProvider.WriteLine ( A<string>._ ) ).Invokes ( ( string fake ) => { messages.Add ( fake ); } ); |
| 955 | + var commandLine = new CommandLine ( fakeProvider ); |
| 956 | + |
| 957 | + //act |
| 958 | + var result = commandLine |
| 959 | + .Application ( "TestApplication", "1.0.0" ) |
| 960 | + .AddOption ( fullName: "Parameter1" ) |
| 961 | + .RunOptions<RunOptions_Success_RangeIntParameter_Completed_Class> (); |
| 962 | + |
| 963 | + //assert |
| 964 | + Assert.NotNull ( result ); |
| 965 | + Assert.Equal ( 1, result.Parameter1.Start ); |
| 966 | + Assert.Equal ( 100, result.Parameter1.End ); |
| 967 | + } |
| 968 | + |
| 969 | + public record RunOptions_Success_RangeIntParameter_NotParsed_Class { |
| 970 | + |
| 971 | + public CommandLineRange<int> Parameter1 { get; set; } = new CommandLineRange<int> (); |
| 972 | + |
| 973 | + public CommandLineRange<int> Parameter2 { get; set; } = new CommandLineRange<int> (); |
| 974 | + |
| 975 | + public CommandLineRange<int> Parameter3 { get; set; } = new CommandLineRange<int> (); |
| 976 | + |
| 977 | + public CommandLineRange<int> Parameter4 { get; set; } = new CommandLineRange<int> (); |
| 978 | + |
| 979 | + } |
| 980 | + |
| 981 | + [Fact] |
| 982 | + public void RunOptions_Success_RangeIntParameter_NotParsed () { |
| 983 | + //arrange |
| 984 | + var messages = new List<string> (); |
| 985 | + var fakeProvider = A.Fake<ICommandLineProvider> (); |
| 986 | + A.CallTo ( () => fakeProvider.GetCommandLine () ).Returns ( "--parameter1=1 --parameter2=- --parameter3=-100 --parameter4=1-" ); |
| 987 | + A.CallTo ( () => fakeProvider.WriteLine ( A<string>._ ) ).Invokes ( ( string fake ) => { messages.Add ( fake ); } ); |
| 988 | + var commandLine = new CommandLine ( fakeProvider ); |
| 989 | + |
| 990 | + //act |
| 991 | + var result = commandLine |
| 992 | + .Application ( "TestApplication", "1.0.0" ) |
| 993 | + .AddOption ( fullName: "Parameter1" ) |
| 994 | + .RunOptions<RunOptions_Success_RangeIntParameter_NotParsed_Class> (); |
| 995 | + |
| 996 | + //assert |
| 997 | + Assert.NotNull ( result ); |
| 998 | + Assert.Equal ( 0, result.Parameter1.Start ); |
| 999 | + Assert.Equal ( 0, result.Parameter1.End ); |
| 1000 | + Assert.Equal ( 0, result.Parameter2.Start ); |
| 1001 | + Assert.Equal ( 0, result.Parameter2.End ); |
| 1002 | + Assert.Equal ( 0, result.Parameter3.Start ); |
| 1003 | + Assert.Equal ( 0, result.Parameter3.End ); |
| 1004 | + Assert.Equal ( 0, result.Parameter4.Start ); |
| 1005 | + Assert.Equal ( 0, result.Parameter4.End ); |
| 1006 | + } |
| 1007 | + |
941 | 1008 | public class DatabaseAdjustments { |
942 | 1009 |
|
943 | 1010 | public IEnumerable<string> Files { get; set; } = Enumerable.Empty<string> (); |
|
0 commit comments