added Extend extension methods generation
All checks were successful
.NET Test / test (push) Successful in 1m56s
.NET Publish / publish (push) Successful in 1m6s

This commit is contained in:
2024-04-08 22:46:34 +04:00
parent 9c9b734c51
commit dd81fecdd6
8 changed files with 235 additions and 20 deletions

View File

@@ -22,7 +22,7 @@ public class GeneralUsage
return "";
}
);
Assert.Equal("TEST_1;SOME", result);
}
@@ -31,7 +31,7 @@ public class GeneralUsage
{
// Given
var error = Error.New("test");
// When
var result = Result.Success()
@@ -94,7 +94,7 @@ public class GeneralUsage
{
// Given
var error = Error.New("test");
// When
var result = await Result.Success()
@@ -169,4 +169,47 @@ public class GeneralUsage
Assert.True(result.IsFailure);
Assert.Equal(error, result.Error);
}
[Fact]
public void WhenExtendingSuccessWithSuccess_ShouldReturnSuccess()
{
var success = Result.Success(1)
.Append("2");
var result = success
.Extend((i, s) => Result.Success($"{i} + {s}"));
Assert.True(result.IsSuccess);
Assert.Equal((1, "2", "1 + 2"), result.Value);
}
[Fact]
public void WhenExtendingFailureWithSuccess_ShouldNotEvaluateExtension()
{
var failure = Result.Success(1)
.Append(Result.Failure<string>("failure"));
var result = failure
.Extend((i, s) =>
{
Assert.Fail();
return Result.Success("");
});
Assert.True(result.IsFailure);
Assert.Equal(Error.New("failure"), result.Error);
}
[Fact]
public void WhenExtendingSuccessWithFailure_ShouldReturnFailure()
{
var success = Result.Success(1)
.Append("2");
var result = success
.Extend((i, s) => Result.Failure<string>("failure"));
Assert.True(result.IsFailure);
Assert.Equal(Error.New("failure"), result.Error);
}
}