@@ -87,5 +87,55 @@ public void MapFailure_UnknownType_Throws()
8787
8888 // Assert
8989 Assert . Throws < InvalidOperationException > ( Act ) ;
90+ }
91+
92+ [ Fact ]
93+ public void GenericSuccessResult_IsConvertedTo_NonGenericSuccessResult ( )
94+ {
95+ var genericResult = Result < int > . Success ( 42 ) ;
96+
97+ Assert . IsType < SuccessResult > ( genericResult . Map ( ) ) ;
98+ }
99+
100+ [ Fact ]
101+ public void GenericValidationFailedResult_IsConvertedTo_NonGenericValidationFailedResult ( )
102+ {
103+ var genericResult = Result < int > . ValidationFailed ( "key" , "message" ) ;
104+
105+ var validationFailedResult = Assert . IsType < ValidationFailedResult > ( genericResult . Map ( ) ) ;
106+
107+ Assert . Single ( validationFailedResult . Errors ) ;
108+ Assert . Equal ( "key" , validationFailedResult . Errors . First ( ) . Key ) ;
109+ Assert . Equal ( "message" , validationFailedResult . Errors . First ( ) . Message ) ;
110+ }
111+
112+ [ Fact ]
113+ public void GenericValidationPassedResult_IsConvertedTo_NonGenericValidationPassedResult ( )
114+ {
115+ var genericResult = new ValidationPassedResult < int > ( ) ;
116+
117+ var validationFailedResult = Assert . IsType < ValidationPassedResult > ( genericResult . Map ( ) ) ;
118+
119+ Assert . Equal ( "Validation passed" , validationFailedResult . Message ) ;
120+ }
121+
122+ [ Fact ]
123+ public void GenericUnauthorizedResult_IsConvertedTo_NonGenericUnauthorizedResult ( )
124+ {
125+ var genericResult = Result < int > . Unauthorized ( "Something went wrong." ) ;
126+
127+ var unauthorizedResult = Assert . IsType < UnauthorizedResult > ( genericResult . Map ( ) ) ;
128+
129+ Assert . Equal ( "Something went wrong." , unauthorizedResult . Message ) ;
130+ }
131+
132+ [ Fact ]
133+ public void GenericPreconditionFailedResult_IsConvertedTo_NonGenericPreconditionFailedResult ( )
134+ {
135+ var genericResult = Result < int > . PreconditionFailed ( PreconditionFailedReason . NotFound ) ;
136+
137+ var preconditionFailedResult = Assert . IsType < PreconditionFailedResult > ( genericResult . Map ( ) ) ;
138+
139+ Assert . Equal ( PreconditionFailedReason . NotFound , preconditionFailedResult . Reason ) ;
90140 }
91141}
0 commit comments