added TryRecover extensions
All checks were successful
.NET Test / test (push) Successful in 1m14s

This commit is contained in:
2023-12-18 18:24:15 +04:00
parent 57e83fbafa
commit 3d34a3021d
7 changed files with 176 additions and 25 deletions

View File

@@ -128,4 +128,33 @@ public class GeneralUsage
// Then
Assert.Equal("satisfied", result);
}
[Fact]
public void RecoverResultFromFailureState()
{
// Given
Result<string> failed = new NotImplementedException();
// When
var result = failed.TryRecover(err =>
{
Assert.IsType<NotImplementedException>(err.ToException());
return "recovered";
});
// Then
Assert.True(result.IsSuccess);
Assert.Equal("recovered", result.Value);
}
[Fact]
public void WhenCanNotRecoverResultFromFailureState()
{
// Given
var error = Error.New("test");
Result<string> failed = new NotImplementedException();
// When
var result = failed.TryRecover(err => error);
// Then
Assert.True(result.IsFailure);
Assert.Equal(error, result.Error);
}
}