@@ -185,6 +185,48 @@ public static unsafe void Conversion2()
185185 Equal ( EnvironmentVariableTarget . Machine , result . Convert ( & Convert . ToInt32 ) . Error ) ;
186186 }
187187
188+ [ Fact ]
189+ public static void ConvertToResult ( )
190+ {
191+ Result < string > validStringResult = "20" ;
192+ var convertedResult1 = validStringResult . Convert ( ToInt ) ;
193+ True ( convertedResult1 . IsSuccessful ) ;
194+ Equal ( 20 , convertedResult1 ) ;
195+
196+ Result < string > invdalidStringResult = "20F" ;
197+ var convertedResult2 = invdalidStringResult . Convert ( ToInt ) ;
198+ False ( convertedResult2 . IsSuccessful ) ;
199+ True ( convertedResult2 . Error is FormatException ) ;
200+
201+ Result < string > exceptionResult = new ( new ArgumentNullException ( ) ) ;
202+ var convertedResult3 = exceptionResult . Convert ( ToInt ) ;
203+ False ( convertedResult3 . IsSuccessful ) ;
204+ True ( convertedResult3 . Error is ArgumentNullException ) ;
205+
206+ static Result < int > ToInt ( string value ) => int . TryParse ( value , out var result ) ? result : throw new FormatException ( ) ;
207+ }
208+
209+ [ Fact ]
210+ public static void ConvertToResult2 ( )
211+ {
212+ Result < string , EnvironmentVariableTarget > validStringResult = "20" ;
213+ var convertedResult1 = validStringResult . Convert ( ToInt ) ;
214+ True ( convertedResult1 . IsSuccessful ) ;
215+ Equal ( 20 , convertedResult1 ) ;
216+
217+ Result < string , EnvironmentVariableTarget > invalidStringResult = "20F" ;
218+ var convertedResult2 = invalidStringResult . Convert ( ToInt ) ;
219+ False ( convertedResult2 . IsSuccessful ) ;
220+ Equal ( EnvironmentVariableTarget . Machine , convertedResult2 . Error ) ;
221+
222+ Result < string , EnvironmentVariableTarget > errorCodeResult = new ( EnvironmentVariableTarget . User ) ;
223+ var convertedResult3 = errorCodeResult . Convert ( ToInt ) ;
224+ False ( convertedResult3 . IsSuccessful ) ;
225+ Equal ( EnvironmentVariableTarget . User , convertedResult3 . Error ) ;
226+
227+ static Result < int , EnvironmentVariableTarget > ToInt ( string value ) => int . TryParse ( value , out var result ) ? new ( result ) : new ( EnvironmentVariableTarget . Machine ) ;
228+ }
229+
188230 [ Fact ]
189231 public static void HandleException ( )
190232 {
0 commit comments