Exemplo n.º 1
0
        public async Task SingleYieldBreakReturnsEmptySequence()
        {
            IAsyncEnumerator <int> enumerator = SingleYieldBreak();

            int[] items = await enumerator.ToArray().ConfigureAwait(true);

            items.Should().BeEmpty();

            async IAsyncEnumerator <int> SingleYieldBreak() => await AsyncYield.Break <int>();
        }
Exemplo n.º 2
0
        public void ItemExceptionIsPropagated()
        {
            IAsyncEnumerator <int> enumerator = TaskAsyncEnumerator.Create
                                                (
                Task.FromResult(42),
                Task.FromException <int>(new InvalidOperationException())
                                                );

            Func <Task <int[]> > faultyAct = () => enumerator.ToArray();

            faultyAct.ShouldThrow <InvalidOperationException>();
        }
Exemplo n.º 3
0
        public async Task ReturnsItemsInOrder()
        {
            Task <int>[] itemTasks = new Task <int>[]
            {
                Task.FromResult(42),
                Task.Delay(100).ContinueWith(_ => 64),
                Task.FromResult(128)
            };

            IAsyncEnumerator <int> enumerator = TaskAsyncEnumerator.Create(itemTasks);

            int[] array = await enumerator.ToArray().ConfigureAwait(true);

            int[] expectedItems = await Task.WhenAll(itemTasks).ConfigureAwait(true);

            array.Should().HaveEquivalentItems(expectedItems);
        }