namespace Geekeey.Extensions.Result.Tests; [TestFixture] internal sealed class ExtensionsEnumerableTests { [Test] public void Join_ReturnsAllSuccess_ForSequenceContainingAllSuccess() { 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 Join_ReturnsFirstFailure_ForSequenceContainingFailure() { 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 Join_ReturnsSuccess_ForEmptySequence() { IEnumerable> xs = []; var result = xs.Join(); Assert.Multiple(() => { Assert.That(result.IsSuccess, Is.True); Assert.That(result.Value, Is.Empty); }); } }