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> 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> xs = [ Success(1), Success(2), Failure("error 1"), Success(4), Failure("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> xs = []; var result = xs.Join(); Assert.Multiple(() => { Assert.That(result.IsSuccess, Is.True); Assert.That(result.Value, Is.Empty); }); } }