54 lines
No EOL
1.1 KiB
C#
54 lines
No EOL
1.1 KiB
C#
namespace Geekeey.Extensions.Result.Tests;
|
|
|
|
[TestFixture]
|
|
internal sealed class ExtensionsEnumerableTests
|
|
{
|
|
[Test]
|
|
public void I_can_join_sequence_and_get_all_success_when_all_elements_are_success()
|
|
{
|
|
IEnumerable<Result<int>> xs = [1, 2, 3, 4, 5];
|
|
|
|
var result = xs.Join();
|
|
|
|
Assert.Multiple(() =>
|
|
{
|
|
Assert.That(result.IsSuccess, Is.True);
|
|
Assert.That(result.Value, Is.EquivalentTo(new[] { 1, 2, 3, 4, 5 }));
|
|
});
|
|
}
|
|
|
|
[Test]
|
|
public void I_can_join_sequence_and_get_first_failure_when_sequence_contains_failure()
|
|
{
|
|
IEnumerable<Result<int>> xs =
|
|
[
|
|
Success(1),
|
|
Success(2),
|
|
Failure<int>("error 1"),
|
|
Success(4),
|
|
Failure<int>("error 2")
|
|
];
|
|
|
|
var result = xs.Join();
|
|
|
|
Assert.Multiple(() =>
|
|
{
|
|
Assert.That(result.IsSuccess, Is.False);
|
|
Assert.That(result.Error?.Message, Is.EqualTo("error 1"));
|
|
});
|
|
}
|
|
|
|
[Test]
|
|
public void I_can_join_empty_sequence_and_get_success()
|
|
{
|
|
IEnumerable<Result<int>> xs = [];
|
|
|
|
var result = xs.Join();
|
|
|
|
Assert.Multiple(() =>
|
|
{
|
|
Assert.That(result.IsSuccess, Is.True);
|
|
Assert.That(result.Value, Is.Empty);
|
|
});
|
|
}
|
|
} |