示例#1
0
        public void Catch12()
        {
            var res = AsyncEnumerable.Catch(Enumerable.Empty <IAsyncEnumerable <int> >());

            var e = res.GetEnumerator();

            NoNext(e);
        }
示例#2
0
        public void Catch_Null()
        {
            AssertThrows <ArgumentNullException>(() => AsyncEnumerable.Catch <int, Exception>(default(IAsyncEnumerable <int>), x => null));
            AssertThrows <ArgumentNullException>(() => AsyncEnumerable.Catch <int, Exception>(AsyncEnumerable.Return(42), default(Func <Exception, IAsyncEnumerable <int> >)));

            AssertThrows <ArgumentNullException>(() => AsyncEnumerable.Catch <int>(default(IAsyncEnumerable <int>), AsyncEnumerable.Return(42)));
            AssertThrows <ArgumentNullException>(() => AsyncEnumerable.Catch <int>(AsyncEnumerable.Return(42), default(IAsyncEnumerable <int>)));
            AssertThrows <ArgumentNullException>(() => AsyncEnumerable.Catch <int>(default(IAsyncEnumerable <int>[])));
            AssertThrows <ArgumentNullException>(() => AsyncEnumerable.Catch <int>(default(IEnumerable <IAsyncEnumerable <int> >)));
        }
示例#3
0
        public async Task Catch13()
        {
            var ex = new InvalidOperationException("Bang!");

            var xs = new[] { 1, 2, 3 }.ToAsyncEnumerable().Concat(AsyncEnumerable.Throw <int>(ex));
            var ys = new[] { 4, 5, 6 }.ToAsyncEnumerable();

            var res = AsyncEnumerable.Catch(new[] { xs, xs, ys, ys });

            await SequenceIdentity(res);
        }
示例#4
0
        public void Catch7()
        {
            var xs = new[] { 1, 2, 3 }.ToAsyncEnumerable();
            var ys = new[] { 4, 5, 6 }.ToAsyncEnumerable();

            var res = AsyncEnumerable.Catch(xs, ys);

            var e = res.GetEnumerator();

            HasNext(e, 1);
            HasNext(e, 2);
            HasNext(e, 3);
            NoNext(e);
        }
示例#5
0
        public void Catch11()
        {
            var ex = new InvalidOperationException("Bang!");

            var xs = new[] { 1, 2, 3 }.ToAsyncEnumerable().Concat(AsyncEnumerable.Throw <int>(ex));

            var res = AsyncEnumerable.Catch(new[] { xs, xs });

            var e = res.GetEnumerator();

            HasNext(e, 1);
            HasNext(e, 2);
            HasNext(e, 3);
            HasNext(e, 1);
            HasNext(e, 2);
            HasNext(e, 3);

            AssertThrows <Exception>(() => e.MoveNext().Wait(WaitTimeoutMs), ex_ => ((AggregateException)ex_).Flatten().InnerExceptions.Single() == ex);
        }
示例#6
0
        public void Catch8()
        {
            var ex = new InvalidOperationException("Bang!");

            var xs = new[] { 1, 2, 3 }.ToAsyncEnumerable().Concat(AsyncEnumerable.Throw <int>(ex));
            var ys = new[] { 4, 5, 6 }.ToAsyncEnumerable();

            var res = AsyncEnumerable.Catch(xs, ys);

            var e = res.GetEnumerator();

            HasNext(e, 1);
            HasNext(e, 2);
            HasNext(e, 3);
            HasNext(e, 4);
            HasNext(e, 5);
            HasNext(e, 6);
            NoNext(e);
        }