5
5
using Microsoft . VisualBasic . FileIO ;
6
6
using System . CommandLine . Parsing ;
7
7
using System . CommandLine . ValueConditions ;
8
+ using System . CommandLine . ValueSources ;
8
9
using Xunit ;
9
10
10
11
namespace System . CommandLine . Subsystems . Tests ;
@@ -27,8 +28,10 @@ public void SimpleValueSource_with_set_value_retrieved()
27
28
{
28
29
var valueSource = new SimpleValueSource < int > ( 42 ) ;
29
30
30
- int value = valueSource . GetTypedValue ( EmptyPipelineResult ( ) ) ;
31
+ ( bool success , int value ) = valueSource . GetTypedValue ( EmptyPipelineResult ( ) ) ;
31
32
33
+ success . Should ( )
34
+ . BeTrue ( ) ;
32
35
value . Should ( )
33
36
. Be ( 42 ) ;
34
37
}
@@ -38,8 +41,10 @@ public void SimpleValueSource_with_converted_value_retrieved()
38
41
{
39
42
ValueSource < int > valueSource = 42 ;
40
43
41
- int value = valueSource . GetTypedValue ( EmptyPipelineResult ( ) ) ;
44
+ ( bool success , int value ) = valueSource . GetTypedValue ( EmptyPipelineResult ( ) ) ;
42
45
46
+ success . Should ( )
47
+ . BeTrue ( ) ;
43
48
value . Should ( )
44
49
. Be ( 42 ) ;
45
50
}
@@ -49,19 +54,23 @@ public void SimpleValueSource_created_via_extension_value_retrieved()
49
54
{
50
55
var valueSource = ValueSource . Create ( 42 ) ;
51
56
52
- int value = valueSource . GetTypedValue ( EmptyPipelineResult ( ) ) ;
57
+ ( bool success , int value ) = valueSource . GetTypedValue ( EmptyPipelineResult ( ) ) ;
53
58
59
+ success . Should ( )
60
+ . BeTrue ( ) ;
54
61
value . Should ( )
55
62
. Be ( 42 ) ;
56
63
}
57
64
58
65
[ Fact ]
59
66
public void CalculatedValueSource_produces_value ( )
60
67
{
61
- var valueSource = new CalculatedValueSource < int > ( ( ) => 42 ) ;
68
+ var valueSource = new CalculatedValueSource < int > ( ( ) => ( true , 42 ) ) ;
62
69
63
- int value = valueSource . GetTypedValue ( EmptyPipelineResult ( ) ) ;
70
+ ( bool success , int value ) = valueSource . GetTypedValue ( EmptyPipelineResult ( ) ) ;
64
71
72
+ success . Should ( )
73
+ . BeTrue ( ) ;
65
74
value . Should ( )
66
75
. Be ( 42 ) ;
67
76
}
@@ -71,20 +80,24 @@ public void CalculatedValueSource_implicitly_converted_produces_value()
71
80
{
72
81
// TODO: Figure out why this doesn't work, and remove implicit operator if it does not work
73
82
// ValueSource<int> valueSource2 = (() => 42);
74
- ValueSource < int > valueSource = ( ValueSource < int > ) ( ( ) => 42 ) ;
83
+ ValueSource < int > valueSource = ( ValueSource < int > ) ( ( ) => ( true , 42 ) ) ; ;
75
84
76
- int value = valueSource . GetTypedValue ( EmptyPipelineResult ( ) ) ;
85
+ ( bool success , int value ) = valueSource . GetTypedValue ( EmptyPipelineResult ( ) ) ;
77
86
87
+ success . Should ( )
88
+ . BeTrue ( ) ;
78
89
value . Should ( )
79
90
. Be ( 42 ) ;
80
91
}
81
92
82
93
[ Fact ]
83
94
public void CalculatedValueSource_from_extension_produces_value ( )
84
95
{
85
- var valueSource = ValueSource . Create ( ( ) => 42 ) ;
86
- int value = valueSource . GetTypedValue ( EmptyPipelineResult ( ) ) ;
96
+ var valueSource = ValueSource . Create ( ( ) => ( true , 42 ) ) ;
97
+ ( bool success , int value ) = valueSource . GetTypedValue ( EmptyPipelineResult ( ) ) ;
87
98
99
+ success . Should ( )
100
+ . BeTrue ( ) ;
88
101
value . Should ( )
89
102
. Be ( 42 ) ;
90
103
}
@@ -95,8 +108,10 @@ public void RelativeToSymbolValueSource_produces_value_that_was_set()
95
108
var option = new CliOption < int > ( "-a" ) ;
96
109
var valueSource = new RelativeToSymbolValueSource < int > ( option ) ;
97
110
98
- int value = valueSource . GetTypedValue ( EmptyPipelineResult ( "-a 42" , option ) ) ;
111
+ ( bool success , int value ) = valueSource . GetTypedValue ( EmptyPipelineResult ( "-a 42" , option ) ) ;
99
112
113
+ success . Should ( )
114
+ . BeTrue ( ) ;
100
115
value . Should ( )
101
116
. Be ( 42 ) ;
102
117
}
@@ -107,8 +122,10 @@ public void RelativeToSymbolValueSource_implicitly_converted_produces_value_that
107
122
var option = new CliOption < int > ( "-a" ) ;
108
123
ValueSource < int > valueSource = option ;
109
124
110
- int value = valueSource . GetTypedValue ( EmptyPipelineResult ( "-a 42" , option ) ) ;
125
+ ( bool success , int value ) = valueSource . GetTypedValue ( EmptyPipelineResult ( "-a 42" , option ) ) ;
111
126
127
+ success . Should ( )
128
+ . BeTrue ( ) ;
112
129
value . Should ( )
113
130
. Be ( 42 ) ;
114
131
}
@@ -119,8 +136,10 @@ public void RelativeToSymbolValueSource_from_extension_produces_value_that_was_s
119
136
var option = new CliOption < int > ( "-a" ) ;
120
137
var valueSource = new RelativeToSymbolValueSource < int > ( option ) ;
121
138
122
- int value = valueSource . GetTypedValue ( EmptyPipelineResult ( "-a 42" , option ) ) ;
139
+ ( bool success , int value ) = valueSource . GetTypedValue ( EmptyPipelineResult ( "-a 42" , option ) ) ;
123
140
141
+ success . Should ( )
142
+ . BeTrue ( ) ;
124
143
value . Should ( )
125
144
. Be ( 42 ) ;
126
145
}
@@ -132,9 +151,11 @@ public void RelativeToEnvironmentVariableValueSource_produces_value_that_was_set
132
151
var valueSource = new RelativeToEnvironmentVariableValueSource < int > ( envName ) ;
133
152
134
153
Environment . SetEnvironmentVariable ( envName , "42" ) ;
135
- int value = valueSource . GetTypedValue ( EmptyPipelineResult ( "" ) ) ;
136
- Environment . SetEnvironmentVariable ( envName , null ) ;
154
+ ( bool success , int value ) = valueSource . GetTypedValue ( EmptyPipelineResult ( "" ) ) ;
155
+ Environment . SetEnvironmentVariable ( envName , null ) ;
137
156
157
+ success . Should ( )
158
+ . BeTrue ( ) ;
138
159
value . Should ( )
139
160
. Be ( 42 ) ;
140
161
}
@@ -147,9 +168,11 @@ public void RelativeToEnvironmentVariableValueSource_from_extension_produces_val
147
168
var valueSource = ValueSource . CreateFromEnvironmentVariable < int > ( envName ) ;
148
169
149
170
Environment . SetEnvironmentVariable ( envName , "42" ) ;
150
- int value = valueSource . GetTypedValue ( EmptyPipelineResult ( "" ) ) ;
171
+ ( bool success , int value ) = valueSource . GetTypedValue ( EmptyPipelineResult ( "" ) ) ;
151
172
Environment . SetEnvironmentVariable ( envName , null ) ;
152
173
174
+ success . Should ( )
175
+ . BeTrue ( ) ;
153
176
value . Should ( )
154
177
. Be ( 42 ) ;
155
178
}
0 commit comments