using System.Collections; using System.Linq.Expressions; namespace MicCheck.Api.Tests.Unit.TestSupport; public class TestAsyncEnumerable : EnumerableQuery, IAsyncEnumerable, IQueryable { public TestAsyncEnumerable(IEnumerable enumerable) : base(enumerable) { } public TestAsyncEnumerable(Expression expression) : base(expression) { } public IAsyncEnumerator GetAsyncEnumerator(CancellationToken cancellationToken = default) => new TestAsyncEnumerator(this.AsEnumerable().GetEnumerator()); IQueryProvider IQueryable.Provider => new TestAsyncQueryProvider(this); } public sealed class TestAsyncEnumerator(IEnumerator inner) : IAsyncEnumerator { public T Current => inner.Current; public ValueTask MoveNextAsync() => ValueTask.FromResult(inner.MoveNext()); public ValueTask DisposeAsync() { inner.Dispose(); return ValueTask.CompletedTask; } }