public async Task ResolvesQueryable()
        {
            var transformer = new AsynchronousEnumerationTransformer();

            var query = CreateQueryable(new TestDbAsyncEnumerator<Dummy>(_fixtures.GetEnumerator()));

            var array = await transformer.Enumerate(query, new CancellationToken());
            array.Should().NotBeNull();
            array.Length.Should().Be(3);
            array[0].Id.Should().Be("1");
            array[1].Id.Should().Be("2");
            array[2].Id.Should().Be("3");
        }
        public async Task ResolvesQueryable()
        {
            var transformer = new AsynchronousEnumerationTransformer();

            var query = CreateQueryable(new TestDbAsyncEnumerator <Dummy>(_fixtures.GetEnumerator()));

            var array = await transformer.Enumerate(query, new CancellationToken());

            array.Should().NotBeNull();
            array.Length.Should().Be(3);
            array[0].Id.Should().Be("1");
            array[1].Id.Should().Be("2");
            array[2].Id.Should().Be("3");
        }
        public void CancelsProperly()
        {
            var actionFilter = new AsynchronousEnumerationTransformer();

            var context = CreateQueryable(new WaitsUntilCancellationDbAsyncEnumerator <Dummy>(1000, _fixtures.GetEnumerator()));

            var cts = new CancellationTokenSource();

            cts.CancelAfter(300);

            Func <Task> action = async() =>
            {
                await actionFilter.Enumerate(context, cts.Token);
            };

            action.ShouldThrow <TaskCanceledException>();
        }
        public void CancelsProperly()
        {
            var actionFilter = new AsynchronousEnumerationTransformer();

            var context = CreateQueryable(new WaitsUntilCancellationDbAsyncEnumerator<Dummy>(1000, _fixtures.GetEnumerator()));

            var cts = new CancellationTokenSource();
            cts.CancelAfter(300);

            Func<Task> action = async () =>
            {
                await actionFilter.Enumerate(context, cts.Token);
            };
            action.ShouldThrow<TaskCanceledException>();
        }