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 Microsoft . VisualBasic . FileIO ;
6
5
using System . CommandLine . Parsing ;
7
- using System . CommandLine . ValueConditions ;
8
6
using System . CommandLine . ValueSources ;
9
7
using Xunit ;
10
8
@@ -28,51 +26,55 @@ public void SimpleValueSource_with_set_value_retrieved()
28
26
{
29
27
var valueSource = new SimpleValueSource < int > ( 42 ) ;
30
28
31
- ( bool success , int value ) = valueSource . GetTypedValue ( EmptyPipelineResult ( ) ) ;
32
-
33
- success . Should ( )
34
- . BeTrue ( ) ;
35
- value . Should ( )
36
- . Be ( 42 ) ;
29
+ if ( valueSource . TryGetTypedValue ( EmptyPipelineResult ( ) , out var value ) )
30
+ {
31
+ value . Should ( )
32
+ . Be ( 42 ) ;
33
+ return ;
34
+ }
35
+ Assert . Fail ( "Typed value not retrieved" ) ;
37
36
}
38
37
39
38
[ Fact ]
40
39
public void SimpleValueSource_with_converted_value_retrieved ( )
41
40
{
42
41
ValueSource < int > valueSource = 42 ;
43
42
44
- ( bool success , int value ) = valueSource . GetTypedValue ( EmptyPipelineResult ( ) ) ;
45
-
46
- success . Should ( )
47
- . BeTrue ( ) ;
48
- value . Should ( )
49
- . Be ( 42 ) ;
43
+ if ( valueSource . TryGetTypedValue ( EmptyPipelineResult ( ) , out var value ) )
44
+ {
45
+ value . Should ( )
46
+ . Be ( 42 ) ;
47
+ return ;
48
+ }
49
+ Assert . Fail ( "Typed value not retrieved" ) ;
50
50
}
51
51
52
52
[ Fact ]
53
53
public void SimpleValueSource_created_via_extension_value_retrieved ( )
54
54
{
55
55
var valueSource = ValueSource . Create ( 42 ) ;
56
56
57
- ( bool success , int value ) = valueSource . GetTypedValue ( EmptyPipelineResult ( ) ) ;
58
-
59
- success . Should ( )
60
- . BeTrue ( ) ;
61
- value . Should ( )
62
- . Be ( 42 ) ;
57
+ if ( valueSource . TryGetTypedValue ( EmptyPipelineResult ( ) , out var value ) )
58
+ {
59
+ value . Should ( )
60
+ . Be ( 42 ) ;
61
+ return ;
62
+ }
63
+ Assert . Fail ( "Typed value not retrieved" ) ;
63
64
}
64
65
65
66
[ Fact ]
66
67
public void CalculatedValueSource_produces_value ( )
67
68
{
68
69
var valueSource = new CalculatedValueSource < int > ( ( ) => ( true , 42 ) ) ;
69
70
70
- ( bool success , int value ) = valueSource . GetTypedValue ( EmptyPipelineResult ( ) ) ;
71
-
72
- success . Should ( )
73
- . BeTrue ( ) ;
74
- value . Should ( )
75
- . Be ( 42 ) ;
71
+ if ( valueSource . TryGetTypedValue ( EmptyPipelineResult ( ) , out var value ) )
72
+ {
73
+ value . Should ( )
74
+ . Be ( 42 ) ;
75
+ return ;
76
+ }
77
+ Assert . Fail ( "Typed value not retrieved" ) ;
76
78
}
77
79
78
80
[ Fact ]
@@ -82,24 +84,27 @@ public void CalculatedValueSource_implicitly_converted_produces_value()
82
84
// ValueSource<int> valueSource2 = (() => 42);
83
85
ValueSource < int > valueSource = ( ValueSource < int > ) ( ( ) => ( true , 42 ) ) ; ;
84
86
85
- ( bool success , int value ) = valueSource . GetTypedValue ( EmptyPipelineResult ( ) ) ;
86
-
87
- success . Should ( )
88
- . BeTrue ( ) ;
89
- value . Should ( )
90
- . Be ( 42 ) ;
87
+ if ( valueSource . TryGetTypedValue ( EmptyPipelineResult ( ) , out var value ) )
88
+ {
89
+ value . Should ( )
90
+ . Be ( 42 ) ;
91
+ return ;
92
+ }
93
+ Assert . Fail ( "Typed value not retrieved" ) ;
91
94
}
92
95
93
96
[ Fact ]
94
97
public void CalculatedValueSource_from_extension_produces_value ( )
95
98
{
96
99
var valueSource = ValueSource . Create ( ( ) => ( true , 42 ) ) ;
97
- ( bool success , int value ) = valueSource . GetTypedValue ( EmptyPipelineResult ( ) ) ;
98
100
99
- success . Should ( )
100
- . BeTrue ( ) ;
101
- value . Should ( )
102
- . Be ( 42 ) ;
101
+ if ( valueSource . TryGetTypedValue ( EmptyPipelineResult ( ) , out var value ) )
102
+ {
103
+ value . Should ( )
104
+ . Be ( 42 ) ;
105
+ return ;
106
+ }
107
+ Assert . Fail ( "Typed value not retrieved" ) ;
103
108
}
104
109
105
110
[ Fact ]
@@ -108,12 +113,14 @@ public void RelativeToSymbolValueSource_produces_value_that_was_set()
108
113
var option = new CliOption < int > ( "-a" ) ;
109
114
var valueSource = new RelativeToSymbolValueSource < int > ( option ) ;
110
115
111
- ( bool success , int value ) = valueSource . GetTypedValue ( EmptyPipelineResult ( "-a 42" , option ) ) ;
112
-
113
- success . Should ( )
114
- . BeTrue ( ) ;
115
- value . Should ( )
116
- . Be ( 42 ) ;
116
+ if ( valueSource . TryGetTypedValue ( EmptyPipelineResult ( "-a 42" , option ) , out var value ) )
117
+ {
118
+ value . Should ( )
119
+ . Be ( 42 ) ;
120
+ return ;
121
+ }
122
+ Assert . Fail ( "Typed value not retrieved" ) ;
123
+
117
124
}
118
125
119
126
[ Fact ]
@@ -122,12 +129,13 @@ public void RelativeToSymbolValueSource_implicitly_converted_produces_value_that
122
129
var option = new CliOption < int > ( "-a" ) ;
123
130
ValueSource < int > valueSource = option ;
124
131
125
- ( bool success , int value ) = valueSource . GetTypedValue ( EmptyPipelineResult ( "-a 42" , option ) ) ;
126
-
127
- success . Should ( )
128
- . BeTrue ( ) ;
129
- value . Should ( )
130
- . Be ( 42 ) ;
132
+ if ( valueSource . TryGetTypedValue ( EmptyPipelineResult ( "-a 42" , option ) , out var value ) )
133
+ {
134
+ value . Should ( )
135
+ . Be ( 42 ) ;
136
+ return ;
137
+ }
138
+ Assert . Fail ( "Typed value not retrieved" ) ;
131
139
}
132
140
133
141
[ Fact ]
@@ -136,30 +144,32 @@ public void RelativeToSymbolValueSource_from_extension_produces_value_that_was_s
136
144
var option = new CliOption < int > ( "-a" ) ;
137
145
var valueSource = new RelativeToSymbolValueSource < int > ( option ) ;
138
146
139
- ( bool success , int value ) = valueSource . GetTypedValue ( EmptyPipelineResult ( "-a 42" , option ) ) ;
140
-
141
- success . Should ( )
142
- . BeTrue ( ) ;
143
- value . Should ( )
144
- . Be ( 42 ) ;
147
+ if ( valueSource . TryGetTypedValue ( EmptyPipelineResult ( "-a 42" , option ) , out var value ) )
148
+ {
149
+ value . Should ( )
150
+ . Be ( 42 ) ;
151
+ return ;
152
+ }
153
+ Assert . Fail ( "Typed value not retrieved" ) ;
145
154
}
146
155
147
156
[ Fact ]
148
157
public void RelativeToEnvironmentVariableValueSource_produces_value_that_was_set ( )
149
158
{
150
159
var envName = "SYSTEM_COMMANDLINE_TESTING" ;
151
160
var valueSource = new RelativeToEnvironmentVariableValueSource < int > ( envName ) ;
152
-
161
+
153
162
Environment . SetEnvironmentVariable ( envName , "42" ) ;
154
- ( bool success , int value ) = valueSource . GetTypedValue ( EmptyPipelineResult ( "" ) ) ;
163
+ if ( valueSource . TryGetTypedValue ( EmptyPipelineResult ( ) , out var value ) )
164
+ {
165
+ value . Should ( )
166
+ . Be ( 42 ) ;
167
+ return ;
168
+ }
155
169
Environment . SetEnvironmentVariable ( envName , null ) ;
156
-
157
- success . Should ( )
158
- . BeTrue ( ) ;
159
- value . Should ( )
160
- . Be ( 42 ) ;
170
+ Assert . Fail ( "Typed value not retrieved" ) ;
161
171
}
162
-
172
+
163
173
164
174
[ Fact ]
165
175
public void RelativeToEnvironmentVariableValueSource_from_extension_produces_value_that_was_set ( )
@@ -168,12 +178,13 @@ public void RelativeToEnvironmentVariableValueSource_from_extension_produces_val
168
178
var valueSource = ValueSource . CreateFromEnvironmentVariable < int > ( envName ) ;
169
179
170
180
Environment . SetEnvironmentVariable ( envName , "42" ) ;
171
- ( bool success , int value ) = valueSource . GetTypedValue ( EmptyPipelineResult ( "" ) ) ;
181
+ if ( valueSource . TryGetTypedValue ( EmptyPipelineResult ( ) , out var value ) )
182
+ {
183
+ value . Should ( )
184
+ . Be ( 42 ) ;
185
+ return ;
186
+ }
172
187
Environment . SetEnvironmentVariable ( envName , null ) ;
173
-
174
- success . Should ( )
175
- . BeTrue ( ) ;
176
- value . Should ( )
177
- . Be ( 42 ) ;
188
+ Assert . Fail ( "Typed value not retrieved" ) ;
178
189
}
179
190
}
0 commit comments