-
Notifications
You must be signed in to change notification settings - Fork 301
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Returned back deleted TapIf methods ( #433 Add ValueTask support )
- Loading branch information
Showing
9 changed files
with
1,340 additions
and
0 deletions.
There are no files selected for viewing
147 changes: 147 additions & 0 deletions
147
CSharpFunctionalExtensions.Tests/ResultTests/Extensions/TapIfAsyncBothTests.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,147 @@ | ||
using FluentAssertions; | ||
using Xunit; | ||
|
||
namespace CSharpFunctionalExtensions.Tests.ResultTests.Extensions | ||
{ | ||
public class TapIfAsyncBothTests : TapIfTestsBase | ||
{ | ||
[Theory] | ||
[InlineData(true, true)] | ||
[InlineData(true, false)] | ||
[InlineData(false, true)] | ||
[InlineData(false, false)] | ||
public void TapIf_AsyncBoth_executes_action_conditionally_and_returns_self(bool isSuccess, bool condition) | ||
{ | ||
Result result = Result.SuccessIf(isSuccess, ErrorMessage); | ||
|
||
var returned = result.AsTask().TapIf(condition, Task_Action).Result; | ||
|
||
actionExecuted.Should().Be(isSuccess && condition); | ||
result.Should().Be(returned); | ||
} | ||
|
||
[Theory] | ||
[InlineData(true, true)] | ||
[InlineData(true, false)] | ||
[InlineData(false, true)] | ||
[InlineData(false, false)] | ||
public void TapIf_T_AsyncBoth_executes_action_conditionally_and_returns_self(bool isSuccess, bool condition) | ||
{ | ||
Result<T> result = Result.SuccessIf(isSuccess, T.Value, ErrorMessage); | ||
|
||
var returned = result.AsTask().TapIf(condition, Task_Action).Result; | ||
|
||
actionExecuted.Should().Be(isSuccess && condition); | ||
result.Should().Be(returned); | ||
} | ||
|
||
[Theory] | ||
[InlineData(true, true)] | ||
[InlineData(true, false)] | ||
[InlineData(false, true)] | ||
[InlineData(false, false)] | ||
public void TapIf_T_AsyncBoth_executes_action_T_conditionally_and_returns_self(bool isSuccess, bool condition) | ||
{ | ||
Result<T> result = Result.SuccessIf(isSuccess, T.Value, ErrorMessage); | ||
|
||
var returned = result.AsTask().TapIf(condition, Task_Action_T).Result; | ||
|
||
actionExecuted.Should().Be(isSuccess && condition); | ||
result.Should().Be(returned); | ||
} | ||
|
||
[Theory] | ||
[InlineData(true, true)] | ||
[InlineData(true, false)] | ||
[InlineData(false, true)] | ||
[InlineData(false, false)] | ||
public void TapIf_T_E_AsyncBoth_executes_action_conditionally_and_returns_self(bool isSuccess, bool condition) | ||
{ | ||
Result<T, E> result = Result.SuccessIf(isSuccess, T.Value, E.Value); | ||
|
||
var returned = result.AsTask().TapIf(condition, Task_Action).Result; | ||
|
||
actionExecuted.Should().Be(isSuccess && condition); | ||
result.Should().Be(returned); | ||
} | ||
|
||
[Theory] | ||
[InlineData(true, true)] | ||
[InlineData(true, false)] | ||
[InlineData(false, true)] | ||
[InlineData(false, false)] | ||
public void TapIf_T_E_AsyncBoth_executes_action_T_conditionally_and_returns_self(bool isSuccess, bool condition) | ||
{ | ||
Result<T, E> result = Result.SuccessIf(isSuccess, T.Value, E.Value); | ||
|
||
var returned = result.AsTask().TapIf(condition, Task_Action_T).Result; | ||
|
||
actionExecuted.Should().Be(isSuccess && condition); | ||
result.Should().Be(returned); | ||
} | ||
|
||
[Theory] | ||
[InlineData(true, true)] | ||
[InlineData(true, false)] | ||
[InlineData(false, true)] | ||
[InlineData(false, false)] | ||
public void TapIf_T_AsyncBoth_executes_action_per_predicate_and_returns_self(bool isSuccess, bool condition) | ||
{ | ||
Result<bool> result = Result.SuccessIf(isSuccess, condition, ErrorMessage); | ||
|
||
var returned = result.AsTask().TapIf(Predicate, Task_Action).Result; | ||
|
||
predicateExecuted.Should().Be(isSuccess); | ||
actionExecuted.Should().Be(isSuccess && condition); | ||
result.Should().Be(returned); | ||
} | ||
|
||
[Theory] | ||
[InlineData(true, true)] | ||
[InlineData(true, false)] | ||
[InlineData(false, true)] | ||
[InlineData(false, false)] | ||
public void TapIf_T_AsyncBoth_executes_action_T_per_predicate_and_returns_self(bool isSuccess, bool condition) | ||
{ | ||
Result<bool> result = Result.SuccessIf(isSuccess, condition, ErrorMessage); | ||
|
||
var returned = result.AsTask().TapIf(Predicate, Task_Action_T).Result; | ||
|
||
predicateExecuted.Should().Be(isSuccess); | ||
actionExecuted.Should().Be(isSuccess && condition); | ||
result.Should().Be(returned); | ||
} | ||
|
||
[Theory] | ||
[InlineData(true, true)] | ||
[InlineData(true, false)] | ||
[InlineData(false, true)] | ||
[InlineData(false, false)] | ||
public void TapIf_T_E_AsyncBoth_executes_action_per_predicate_and_returns_self(bool isSuccess, bool condition) | ||
{ | ||
Result<bool, E> result = Result.SuccessIf(isSuccess, condition, E.Value); | ||
|
||
var returned = result.AsTask().TapIf(Predicate, Task_Action).Result; | ||
|
||
predicateExecuted.Should().Be(isSuccess); | ||
actionExecuted.Should().Be(isSuccess && condition); | ||
result.Should().Be(returned); | ||
} | ||
|
||
[Theory] | ||
[InlineData(true, true)] | ||
[InlineData(true, false)] | ||
[InlineData(false, true)] | ||
[InlineData(false, false)] | ||
public void TapIf_T_E_AsyncBoth_executes_action_T_per_predicate_and_returns_self(bool isSuccess, bool condition) | ||
{ | ||
Result<bool, E> result = Result.SuccessIf(isSuccess, condition, E.Value); | ||
|
||
var returned = result.AsTask().TapIf(Predicate, Task_Action_T).Result; | ||
|
||
predicateExecuted.Should().Be(isSuccess); | ||
actionExecuted.Should().Be(isSuccess && condition); | ||
result.Should().Be(returned); | ||
} | ||
} | ||
} |
237 changes: 237 additions & 0 deletions
237
CSharpFunctionalExtensions.Tests/ResultTests/Extensions/TapIfAsyncLeftTests.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,237 @@ | ||
using FluentAssertions; | ||
using Xunit; | ||
|
||
namespace CSharpFunctionalExtensions.Tests.ResultTests.Extensions | ||
{ | ||
public class TapIfAsyncLeftTests : TapIfTestsBase | ||
{ | ||
[Theory] | ||
[InlineData(true, true)] | ||
[InlineData(true, false)] | ||
[InlineData(false, true)] | ||
[InlineData(false, false)] | ||
public void TapIf_AsyncLeft_executes_action_conditionally_and_returns_self(bool isSuccess, bool condition) | ||
{ | ||
Result result = Result.SuccessIf(isSuccess, ErrorMessage); | ||
|
||
var returned = result.AsTask().TapIf(condition, Action).Result; | ||
|
||
actionExecuted.Should().Be(isSuccess && condition); | ||
result.Should().Be(returned); | ||
} | ||
|
||
[Theory] | ||
[InlineData(true, true)] | ||
[InlineData(true, false)] | ||
[InlineData(false, true)] | ||
[InlineData(false, false)] | ||
public void TapIf_T_AsyncLeft_executes_action_conditionally_and_returns_self(bool isSuccess, bool condition) | ||
{ | ||
Result<T> result = Result.SuccessIf(isSuccess, T.Value, ErrorMessage); | ||
|
||
var returned = result.AsTask().TapIf(condition, Action).Result; | ||
|
||
actionExecuted.Should().Be(isSuccess && condition); | ||
result.Should().Be(returned); | ||
} | ||
|
||
[Theory] | ||
[InlineData(true, true)] | ||
[InlineData(true, false)] | ||
[InlineData(false, true)] | ||
[InlineData(false, false)] | ||
public void TapIf_T_AsyncLeft_executes_action_T_conditionally_and_returns_self(bool isSuccess, bool condition) | ||
{ | ||
Result<T> result = Result.SuccessIf(isSuccess, T.Value, ErrorMessage); | ||
|
||
var returned = result.AsTask().TapIf(condition, Action_T).Result; | ||
|
||
actionExecuted.Should().Be(isSuccess && condition); | ||
result.Should().Be(returned); | ||
} | ||
|
||
[Theory] | ||
[InlineData(true, true)] | ||
[InlineData(true, false)] | ||
[InlineData(false, true)] | ||
[InlineData(false, false)] | ||
public void TapIf_T_E_AsyncLeft_executes_action_conditionally_and_returns_self(bool isSuccess, bool condition) | ||
{ | ||
Result<T, E> result = Result.SuccessIf(isSuccess, T.Value, E.Value); | ||
|
||
var returned = result.AsTask().TapIf(condition, Action).Result; | ||
|
||
actionExecuted.Should().Be(isSuccess && condition); | ||
result.Should().Be(returned); | ||
} | ||
|
||
[Theory] | ||
[InlineData(true, true)] | ||
[InlineData(true, false)] | ||
[InlineData(false, true)] | ||
[InlineData(false, false)] | ||
public void TapIf_T_E_AsyncLeft_executes_action_T_conditionally_and_returns_self(bool isSuccess, bool condition) | ||
{ | ||
Result<T, E> result = Result.SuccessIf(isSuccess, T.Value, E.Value); | ||
|
||
var returned = result.AsTask().TapIf(condition, Action_T).Result; | ||
|
||
actionExecuted.Should().Be(isSuccess && condition); | ||
result.Should().Be(returned); | ||
} | ||
|
||
[Theory] | ||
[InlineData(true, true)] | ||
[InlineData(true, false)] | ||
[InlineData(false, true)] | ||
[InlineData(false, false)] | ||
public void TapIf_T_AsyncLeft_executes_func_result_T_conditionally_and_returns_self(bool isSuccess, bool condition) | ||
{ | ||
Result<bool> result = Result.SuccessIf(isSuccess, condition, ErrorMessage); | ||
|
||
var returned = result.AsTask().TapIf(condition, Func_Result).Result; | ||
|
||
actionExecuted.Should().Be(isSuccess && condition); | ||
result.Should().Be(returned); | ||
} | ||
|
||
[Theory] | ||
[InlineData(true, true)] | ||
[InlineData(true, false)] | ||
[InlineData(false, true)] | ||
[InlineData(false, false)] | ||
public void TapIf_T_AsyncLeft_executes_func_result_K_conditionally_and_returns_self(bool isSuccess, bool condition) | ||
{ | ||
Result<bool> result = Result.SuccessIf(isSuccess, condition, ErrorMessage); | ||
|
||
var returned = result.AsTask().TapIf(condition, Func_Result_K).Result; | ||
|
||
actionExecuted.Should().Be(isSuccess && condition); | ||
result.Should().Be(returned); | ||
} | ||
|
||
[Theory] | ||
[InlineData(true, true)] | ||
[InlineData(true, false)] | ||
[InlineData(false, true)] | ||
[InlineData(false, false)] | ||
public void TapIf_T_AsyncLeft_executes_func_result_K_E_conditionally_and_returns_self(bool isSuccess, bool condition) | ||
{ | ||
Result<bool, E> result = Result.SuccessIf(isSuccess, condition, E.Value); | ||
|
||
var returned = result.AsTask().TapIf(condition, Func_Result_K_E).Result; | ||
|
||
actionExecuted.Should().Be(isSuccess && condition); | ||
result.Should().Be(returned); | ||
} | ||
|
||
[Theory] | ||
[InlineData(true, true)] | ||
[InlineData(true, false)] | ||
[InlineData(false, true)] | ||
[InlineData(false, false)] | ||
public void TapIf_T_AsyncLeft_executes_action_per_predicate_and_returns_self(bool isSuccess, bool condition) | ||
{ | ||
Result<bool> result = Result.SuccessIf(isSuccess, condition, ErrorMessage); | ||
|
||
var returned = result.AsTask().TapIf(Predicate, Action).Result; | ||
|
||
predicateExecuted.Should().Be(isSuccess); | ||
actionExecuted.Should().Be(isSuccess && condition); | ||
result.Should().Be(returned); | ||
} | ||
|
||
[Theory] | ||
[InlineData(true, true)] | ||
[InlineData(true, false)] | ||
[InlineData(false, true)] | ||
[InlineData(false, false)] | ||
public void TapIf_T_AsyncLeft_executes_action_T_per_predicate_and_returns_self(bool isSuccess, bool condition) | ||
{ | ||
Result<bool> result = Result.SuccessIf(isSuccess, condition, ErrorMessage); | ||
|
||
var returned = result.AsTask().TapIf(Predicate, Action_T).Result; | ||
|
||
predicateExecuted.Should().Be(isSuccess); | ||
actionExecuted.Should().Be(isSuccess && condition); | ||
result.Should().Be(returned); | ||
} | ||
|
||
[Theory] | ||
[InlineData(true, true)] | ||
[InlineData(true, false)] | ||
[InlineData(false, true)] | ||
[InlineData(false, false)] | ||
public void TapIf_T_E_AsyncLeft_executes_action_per_predicate_and_returns_self(bool isSuccess, bool condition) | ||
{ | ||
Result<bool, E> result = Result.SuccessIf(isSuccess, condition, E.Value); | ||
|
||
var returned = result.AsTask().TapIf(Predicate, Action).Result; | ||
|
||
predicateExecuted.Should().Be(isSuccess); | ||
actionExecuted.Should().Be(isSuccess && condition); | ||
result.Should().Be(returned); | ||
} | ||
|
||
[Theory] | ||
[InlineData(true, true)] | ||
[InlineData(true, false)] | ||
[InlineData(false, true)] | ||
[InlineData(false, false)] | ||
public void TapIf_T_E_AsyncLeft_executes_action_T_per_predicate_and_returns_self(bool isSuccess, bool condition) | ||
{ | ||
Result<bool, E> result = Result.SuccessIf(isSuccess, condition, E.Value); | ||
|
||
var returned = result.AsTask().TapIf(Predicate, Action_T).Result; | ||
|
||
predicateExecuted.Should().Be(isSuccess); | ||
actionExecuted.Should().Be(isSuccess && condition); | ||
result.Should().Be(returned); | ||
} | ||
|
||
[Theory] | ||
[InlineData(true, true)] | ||
[InlineData(true, false)] | ||
[InlineData(false, true)] | ||
[InlineData(false, false)] | ||
public void TapIf_T_AsyncLeft_executes_func_result_T_per_predicate_and_returns_self(bool isSuccess, bool condition) | ||
{ | ||
Result<bool> result = Result.SuccessIf(isSuccess, condition, ErrorMessage); | ||
|
||
var returned = result.AsTask().TapIf(Predicate, Func_Result).Result; | ||
|
||
actionExecuted.Should().Be(isSuccess && condition); | ||
result.Should().Be(returned); | ||
} | ||
|
||
[Theory] | ||
[InlineData(true, true)] | ||
[InlineData(true, false)] | ||
[InlineData(false, true)] | ||
[InlineData(false, false)] | ||
public void TapIf_T_AsyncLeft_executes_func_result_K_per_predicate_and_returns_self(bool isSuccess, bool condition) | ||
{ | ||
Result<bool> result = Result.SuccessIf(isSuccess, condition, ErrorMessage); | ||
|
||
var returned = result.AsTask().TapIf(Predicate, Func_Result_K).Result; | ||
|
||
actionExecuted.Should().Be(isSuccess && condition); | ||
result.Should().Be(returned); | ||
} | ||
|
||
[Theory] | ||
[InlineData(true, true)] | ||
[InlineData(true, false)] | ||
[InlineData(false, true)] | ||
[InlineData(false, false)] | ||
public void TapIf_T_AsyncLeft_executes_func_result_K_E_per_predicate_and_returns_self(bool isSuccess, bool condition) | ||
{ | ||
Result<bool, E> result = Result.SuccessIf(isSuccess, condition, E.Value); | ||
|
||
var returned = result.AsTask().TapIf(Predicate, Func_Result_K_E).Result; | ||
|
||
actionExecuted.Should().Be(isSuccess && condition); | ||
result.Should().Be(returned); | ||
} | ||
} | ||
} |
Oops, something went wrong.