public async ValueTask ForEachAsync_ActionAt_With_ValidData_Must_Succeed(int[] source) { // Arrange var wrapped = Wrap.AsAsyncValueEnumerable(source); var result = new List <(int, int)>(); var expected = new List <(int, int)>(); System.Linq.EnumerableEx.ForEach(source, (item, index) => expected.Add((item, index))); // Act await AsyncValueEnumerable .ForEachAsync <Wrap.AsyncValueEnumerable <int>, Wrap.AsyncEnumerator <int>, int>(wrapped, (item, index, cancellationToken) => { result.Add((item, index)); return(new ValueTask()); }); // Assert _ = result.Must() .BeEnumerableOf <(int, int)>() .BeEqualTo(expected); }