using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Threading; using System.Threading.Tasks; using Xunit; namespace Tests { public class AsyncQueryableTests { [Fact] public void Buffer1() { AssertEx.Throws(() => AsyncQueryableEx.Buffer(default(IAsyncQueryable), 1), ane => ane.ParamName == "source"); var res = AsyncQueryableEx.Buffer(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), 1); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void Buffer2() { AssertEx.Throws(() => AsyncQueryableEx.Buffer(default(IAsyncQueryable), 1, 1), ane => ane.ParamName == "source"); var res = AsyncQueryableEx.Buffer(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), 1, 1); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void Catch1() { AssertEx.Throws(() => AsyncQueryableEx.Catch(default(IAsyncQueryable), (Exception arg0) => new int[] { default(int) }.ToAsyncEnumerable()), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.Catch(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>>)), ane => ane.ParamName == "handler"); var res = AsyncQueryableEx.Catch(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (Exception arg0) => new int[] { default(int) }.ToAsyncEnumerable()); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void Catch2() { AssertEx.Throws(() => AsyncQueryableEx.Catch(default(IAsyncQueryable), (Exception arg0) => default(Task>)), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.Catch(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>>>)), ane => ane.ParamName == "handler"); var res = AsyncQueryableEx.Catch(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (Exception arg0) => default(Task>)); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void Catch3() { AssertEx.Throws(() => AsyncQueryableEx.Catch(default(IAsyncQueryable), new int[] { default(int) }.ToAsyncEnumerable()), ane => ane.ParamName == "first"); AssertEx.Throws(() => AsyncQueryableEx.Catch(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(IAsyncEnumerable)), ane => ane.ParamName == "second"); var res = AsyncQueryableEx.Catch(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), new int[] { default(int) }.ToAsyncEnumerable()); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void Distinct1() { AssertEx.Throws(() => AsyncQueryableEx.Distinct(default(IAsyncQueryable), (int arg0) => default(int)), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.Distinct(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>)), ane => ane.ParamName == "keySelector"); var res = AsyncQueryableEx.Distinct(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(int)); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void Distinct2() { AssertEx.Throws(() => AsyncQueryableEx.Distinct(default(IAsyncQueryable), (int arg0) => default(Task)), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.Distinct(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>>)), ane => ane.ParamName == "keySelector"); var res = AsyncQueryableEx.Distinct(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(Task)); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void Distinct3() { AssertEx.Throws(() => AsyncQueryableEx.Distinct(default(IAsyncQueryable), (int arg0) => default(int), EqualityComparer.Default), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.Distinct(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>), EqualityComparer.Default), ane => ane.ParamName == "keySelector"); AssertEx.Throws(() => AsyncQueryableEx.Distinct(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(int), default(IEqualityComparer)), ane => ane.ParamName == "comparer"); var res = AsyncQueryableEx.Distinct(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(int), EqualityComparer.Default); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void Distinct4() { AssertEx.Throws(() => AsyncQueryableEx.Distinct(default(IAsyncQueryable), (int arg0) => default(Task), EqualityComparer.Default), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.Distinct(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>>), EqualityComparer.Default), ane => ane.ParamName == "keySelector"); AssertEx.Throws(() => AsyncQueryableEx.Distinct(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(Task), default(IEqualityComparer)), ane => ane.ParamName == "comparer"); var res = AsyncQueryableEx.Distinct(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(Task), EqualityComparer.Default); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void DistinctUntilChanged1() { AssertEx.Throws(() => AsyncQueryableEx.DistinctUntilChanged(default(IAsyncQueryable)), ane => ane.ParamName == "source"); var res = AsyncQueryableEx.DistinctUntilChanged(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable()); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void DistinctUntilChanged2() { AssertEx.Throws(() => AsyncQueryableEx.DistinctUntilChanged(default(IAsyncQueryable), EqualityComparer.Default), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.DistinctUntilChanged(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(IEqualityComparer)), ane => ane.ParamName == "comparer"); var res = AsyncQueryableEx.DistinctUntilChanged(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), EqualityComparer.Default); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void DistinctUntilChanged3() { AssertEx.Throws(() => AsyncQueryableEx.DistinctUntilChanged(default(IAsyncQueryable), (int arg0) => default(int)), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.DistinctUntilChanged(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>)), ane => ane.ParamName == "keySelector"); var res = AsyncQueryableEx.DistinctUntilChanged(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(int)); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void DistinctUntilChanged4() { AssertEx.Throws(() => AsyncQueryableEx.DistinctUntilChanged(default(IAsyncQueryable), (int arg0) => default(Task)), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.DistinctUntilChanged(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>>)), ane => ane.ParamName == "keySelector"); var res = AsyncQueryableEx.DistinctUntilChanged(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(Task)); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void DistinctUntilChanged5() { AssertEx.Throws(() => AsyncQueryableEx.DistinctUntilChanged(default(IAsyncQueryable), (int arg0) => default(int), EqualityComparer.Default), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.DistinctUntilChanged(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>), EqualityComparer.Default), ane => ane.ParamName == "keySelector"); AssertEx.Throws(() => AsyncQueryableEx.DistinctUntilChanged(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(int), default(IEqualityComparer)), ane => ane.ParamName == "comparer"); var res = AsyncQueryableEx.DistinctUntilChanged(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(int), EqualityComparer.Default); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void DistinctUntilChanged6() { AssertEx.Throws(() => AsyncQueryableEx.DistinctUntilChanged(default(IAsyncQueryable), (int arg0) => default(Task), EqualityComparer.Default), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.DistinctUntilChanged(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>>), EqualityComparer.Default), ane => ane.ParamName == "keySelector"); AssertEx.Throws(() => AsyncQueryableEx.DistinctUntilChanged(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(Task), default(IEqualityComparer)), ane => ane.ParamName == "comparer"); var res = AsyncQueryableEx.DistinctUntilChanged(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(Task), EqualityComparer.Default); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void Do1() { AssertEx.Throws(() => AsyncQueryableEx.Do(default(IAsyncQueryable), (int arg0) => Console.WriteLine()), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.Do(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>)), ane => ane.ParamName == "onNext"); var res = AsyncQueryableEx.Do(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => Console.WriteLine()); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void Do2() { AssertEx.Throws(() => AsyncQueryableEx.Do(default(IAsyncQueryable), (int arg0) => default(Task)), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.Do(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>)), ane => ane.ParamName == "onNext"); var res = AsyncQueryableEx.Do(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(Task)); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void Do3() { AssertEx.Throws(() => AsyncQueryableEx.Do(default(IAsyncQueryable), new NopObserver()), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.Do(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(IObserver)), ane => ane.ParamName == "observer"); var res = AsyncQueryableEx.Do(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), new NopObserver()); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void Do4() { AssertEx.Throws(() => AsyncQueryableEx.Do(default(IAsyncQueryable), (int arg0) => Console.WriteLine(), () => { }), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.Do(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>), () => { }), ane => ane.ParamName == "onNext"); AssertEx.Throws(() => AsyncQueryableEx.Do(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => Console.WriteLine(), default(Action)), ane => ane.ParamName == "onCompleted"); var res = AsyncQueryableEx.Do(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => Console.WriteLine(), () => { }); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void Do5() { AssertEx.Throws(() => AsyncQueryableEx.Do(default(IAsyncQueryable), (int arg0) => Console.WriteLine(), (Exception arg0) => Console.WriteLine()), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.Do(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>), (Exception arg0) => Console.WriteLine()), ane => ane.ParamName == "onNext"); AssertEx.Throws(() => AsyncQueryableEx.Do(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => Console.WriteLine(), default(Expression>)), ane => ane.ParamName == "onError"); var res = AsyncQueryableEx.Do(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => Console.WriteLine(), (Exception arg0) => Console.WriteLine()); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void Do6() { AssertEx.Throws(() => AsyncQueryableEx.Do(default(IAsyncQueryable), (int arg0) => default(Task), () => default(Task)), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.Do(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>), () => default(Task)), ane => ane.ParamName == "onNext"); AssertEx.Throws(() => AsyncQueryableEx.Do(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(Task), default(Expression>)), ane => ane.ParamName == "onCompleted"); var res = AsyncQueryableEx.Do(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(Task), () => default(Task)); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void Do7() { AssertEx.Throws(() => AsyncQueryableEx.Do(default(IAsyncQueryable), (int arg0) => default(Task), (Exception arg0) => default(Task)), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.Do(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>), (Exception arg0) => default(Task)), ane => ane.ParamName == "onNext"); AssertEx.Throws(() => AsyncQueryableEx.Do(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(Task), default(Expression>)), ane => ane.ParamName == "onError"); var res = AsyncQueryableEx.Do(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(Task), (Exception arg0) => default(Task)); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void Do8() { AssertEx.Throws(() => AsyncQueryableEx.Do(default(IAsyncQueryable), (int arg0) => Console.WriteLine(), (Exception arg0) => Console.WriteLine(), () => { }), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.Do(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>), (Exception arg0) => Console.WriteLine(), () => { }), ane => ane.ParamName == "onNext"); AssertEx.Throws(() => AsyncQueryableEx.Do(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => Console.WriteLine(), default(Expression>), () => { }), ane => ane.ParamName == "onError"); AssertEx.Throws(() => AsyncQueryableEx.Do(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => Console.WriteLine(), (Exception arg0) => Console.WriteLine(), default(Action)), ane => ane.ParamName == "onCompleted"); var res = AsyncQueryableEx.Do(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => Console.WriteLine(), (Exception arg0) => Console.WriteLine(), () => { }); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void Do9() { AssertEx.Throws(() => AsyncQueryableEx.Do(default(IAsyncQueryable), (int arg0) => default(Task), (Exception arg0) => default(Task), () => default(Task)), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.Do(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>), (Exception arg0) => default(Task), () => default(Task)), ane => ane.ParamName == "onNext"); AssertEx.Throws(() => AsyncQueryableEx.Do(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(Task), default(Expression>), () => default(Task)), ane => ane.ParamName == "onError"); AssertEx.Throws(() => AsyncQueryableEx.Do(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(Task), (Exception arg0) => default(Task), default(Expression>)), ane => ane.ParamName == "onCompleted"); var res = AsyncQueryableEx.Do(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(Task), (Exception arg0) => default(Task), () => default(Task)); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void Expand1() { AssertEx.Throws(() => AsyncQueryableEx.Expand(default(IAsyncQueryable), (int arg0) => new int[] { default(int) }.ToAsyncEnumerable()), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.Expand(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>>)), ane => ane.ParamName == "selector"); var res = AsyncQueryableEx.Expand(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => new int[] { default(int) }.ToAsyncEnumerable()); res = res.Take(5); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void Expand2() { AssertEx.Throws(() => AsyncQueryableEx.Expand(default(IAsyncQueryable), (int arg0) => default(Task>)), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.Expand(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>>>)), ane => ane.ParamName == "selector"); var res = AsyncQueryableEx.Expand(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(Task>)); res = res.Take(5); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void Finally1() { AssertEx.Throws(() => AsyncQueryableEx.Finally(default(IAsyncQueryable), () => { }), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.Finally(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Action)), ane => ane.ParamName == "finallyAction"); var res = AsyncQueryableEx.Finally(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), () => { }); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void Finally2() { AssertEx.Throws(() => AsyncQueryableEx.Finally(default(IAsyncQueryable), () => default(Task)), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.Finally(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>)), ane => ane.ParamName == "finallyAction"); var res = AsyncQueryableEx.Finally(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), () => default(Task)); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void IgnoreElements1() { AssertEx.Throws(() => AsyncQueryableEx.IgnoreElements(default(IAsyncQueryable)), ane => ane.ParamName == "source"); var res = AsyncQueryableEx.IgnoreElements(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable()); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void IsEmpty1() { AssertEx.Throws(() => AsyncQueryableEx.IsEmpty(default(IAsyncQueryable)), ane => ane.ParamName == "source"); var res = AsyncQueryableEx.IsEmpty(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable()); AssertEx.SucceedOrFailProper(() => res.Wait()); } [Fact] public void IsEmpty2() { AssertEx.Throws(() => AsyncQueryableEx.IsEmpty(default(IAsyncQueryable), CancellationToken.None), ane => ane.ParamName == "source"); var res = AsyncQueryableEx.IsEmpty(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), CancellationToken.None); AssertEx.SucceedOrFailProper(() => res.Wait()); } [Fact] public void MaxBy1() { AssertEx.Throws(() => AsyncQueryableEx.MaxBy(default(IAsyncQueryable), (int arg0) => default(int)), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.MaxBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>)), ane => ane.ParamName == "keySelector"); var res = AsyncQueryableEx.MaxBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(int)); AssertEx.SucceedOrFailProper(() => res.Wait()); } [Fact] public void MaxBy2() { AssertEx.Throws(() => AsyncQueryableEx.MaxBy(default(IAsyncQueryable), (int arg0) => default(Task)), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.MaxBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>>)), ane => ane.ParamName == "keySelector"); var res = AsyncQueryableEx.MaxBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(Task)); AssertEx.SucceedOrFailProper(() => res.Wait()); } [Fact] public void MaxBy3() { AssertEx.Throws(() => AsyncQueryableEx.MaxBy(default(IAsyncQueryable), (int arg0) => default(int), CancellationToken.None), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.MaxBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>), CancellationToken.None), ane => ane.ParamName == "keySelector"); var res = AsyncQueryableEx.MaxBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(int), CancellationToken.None); AssertEx.SucceedOrFailProper(() => res.Wait()); } [Fact] public void MaxBy4() { AssertEx.Throws(() => AsyncQueryableEx.MaxBy(default(IAsyncQueryable), (int arg0) => default(int), Comparer.Default), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.MaxBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>), Comparer.Default), ane => ane.ParamName == "keySelector"); AssertEx.Throws(() => AsyncQueryableEx.MaxBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(int), default(IComparer)), ane => ane.ParamName == "comparer"); var res = AsyncQueryableEx.MaxBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(int), Comparer.Default); AssertEx.SucceedOrFailProper(() => res.Wait()); } [Fact] public void MaxBy5() { AssertEx.Throws(() => AsyncQueryableEx.MaxBy(default(IAsyncQueryable), (int arg0) => default(Task), CancellationToken.None), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.MaxBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>>), CancellationToken.None), ane => ane.ParamName == "keySelector"); var res = AsyncQueryableEx.MaxBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(Task), CancellationToken.None); AssertEx.SucceedOrFailProper(() => res.Wait()); } [Fact] public void MaxBy6() { AssertEx.Throws(() => AsyncQueryableEx.MaxBy(default(IAsyncQueryable), (int arg0) => default(Task), Comparer.Default), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.MaxBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>>), Comparer.Default), ane => ane.ParamName == "keySelector"); AssertEx.Throws(() => AsyncQueryableEx.MaxBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(Task), default(IComparer)), ane => ane.ParamName == "comparer"); var res = AsyncQueryableEx.MaxBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(Task), Comparer.Default); AssertEx.SucceedOrFailProper(() => res.Wait()); } [Fact] public void MaxBy7() { AssertEx.Throws(() => AsyncQueryableEx.MaxBy(default(IAsyncQueryable), (int arg0) => default(int), Comparer.Default, CancellationToken.None), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.MaxBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>), Comparer.Default, CancellationToken.None), ane => ane.ParamName == "keySelector"); AssertEx.Throws(() => AsyncQueryableEx.MaxBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(int), default(IComparer), CancellationToken.None), ane => ane.ParamName == "comparer"); var res = AsyncQueryableEx.MaxBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(int), Comparer.Default, CancellationToken.None); AssertEx.SucceedOrFailProper(() => res.Wait()); } [Fact] public void MaxBy8() { AssertEx.Throws(() => AsyncQueryableEx.MaxBy(default(IAsyncQueryable), (int arg0) => default(Task), Comparer.Default, CancellationToken.None), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.MaxBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>>), Comparer.Default, CancellationToken.None), ane => ane.ParamName == "keySelector"); AssertEx.Throws(() => AsyncQueryableEx.MaxBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(Task), default(IComparer), CancellationToken.None), ane => ane.ParamName == "comparer"); var res = AsyncQueryableEx.MaxBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(Task), Comparer.Default, CancellationToken.None); AssertEx.SucceedOrFailProper(() => res.Wait()); } [Fact] public void MinBy1() { AssertEx.Throws(() => AsyncQueryableEx.MinBy(default(IAsyncQueryable), (int arg0) => default(int)), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.MinBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>)), ane => ane.ParamName == "keySelector"); var res = AsyncQueryableEx.MinBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(int)); AssertEx.SucceedOrFailProper(() => res.Wait()); } [Fact] public void MinBy2() { AssertEx.Throws(() => AsyncQueryableEx.MinBy(default(IAsyncQueryable), (int arg0) => default(Task)), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.MinBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>>)), ane => ane.ParamName == "keySelector"); var res = AsyncQueryableEx.MinBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(Task)); AssertEx.SucceedOrFailProper(() => res.Wait()); } [Fact] public void MinBy3() { AssertEx.Throws(() => AsyncQueryableEx.MinBy(default(IAsyncQueryable), (int arg0) => default(int), CancellationToken.None), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.MinBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>), CancellationToken.None), ane => ane.ParamName == "keySelector"); var res = AsyncQueryableEx.MinBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(int), CancellationToken.None); AssertEx.SucceedOrFailProper(() => res.Wait()); } [Fact] public void MinBy4() { AssertEx.Throws(() => AsyncQueryableEx.MinBy(default(IAsyncQueryable), (int arg0) => default(int), Comparer.Default), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.MinBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>), Comparer.Default), ane => ane.ParamName == "keySelector"); AssertEx.Throws(() => AsyncQueryableEx.MinBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(int), default(IComparer)), ane => ane.ParamName == "comparer"); var res = AsyncQueryableEx.MinBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(int), Comparer.Default); AssertEx.SucceedOrFailProper(() => res.Wait()); } [Fact] public void MinBy5() { AssertEx.Throws(() => AsyncQueryableEx.MinBy(default(IAsyncQueryable), (int arg0) => default(Task), CancellationToken.None), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.MinBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>>), CancellationToken.None), ane => ane.ParamName == "keySelector"); var res = AsyncQueryableEx.MinBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(Task), CancellationToken.None); AssertEx.SucceedOrFailProper(() => res.Wait()); } [Fact] public void MinBy6() { AssertEx.Throws(() => AsyncQueryableEx.MinBy(default(IAsyncQueryable), (int arg0) => default(Task), Comparer.Default), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.MinBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>>), Comparer.Default), ane => ane.ParamName == "keySelector"); AssertEx.Throws(() => AsyncQueryableEx.MinBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(Task), default(IComparer)), ane => ane.ParamName == "comparer"); var res = AsyncQueryableEx.MinBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(Task), Comparer.Default); AssertEx.SucceedOrFailProper(() => res.Wait()); } [Fact] public void MinBy7() { AssertEx.Throws(() => AsyncQueryableEx.MinBy(default(IAsyncQueryable), (int arg0) => default(int), Comparer.Default, CancellationToken.None), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.MinBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>), Comparer.Default, CancellationToken.None), ane => ane.ParamName == "keySelector"); AssertEx.Throws(() => AsyncQueryableEx.MinBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(int), default(IComparer), CancellationToken.None), ane => ane.ParamName == "comparer"); var res = AsyncQueryableEx.MinBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(int), Comparer.Default, CancellationToken.None); AssertEx.SucceedOrFailProper(() => res.Wait()); } [Fact] public void MinBy8() { AssertEx.Throws(() => AsyncQueryableEx.MinBy(default(IAsyncQueryable), (int arg0) => default(Task), Comparer.Default, CancellationToken.None), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.MinBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>>), Comparer.Default, CancellationToken.None), ane => ane.ParamName == "keySelector"); AssertEx.Throws(() => AsyncQueryableEx.MinBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(Task), default(IComparer), CancellationToken.None), ane => ane.ParamName == "comparer"); var res = AsyncQueryableEx.MinBy(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0) => default(Task), Comparer.Default, CancellationToken.None); AssertEx.SucceedOrFailProper(() => res.Wait()); } [Fact] public void OnErrorResumeNext1() { AssertEx.Throws(() => AsyncQueryableEx.OnErrorResumeNext(default(IAsyncQueryable), new int[] { default(int) }.ToAsyncEnumerable()), ane => ane.ParamName == "first"); AssertEx.Throws(() => AsyncQueryableEx.OnErrorResumeNext(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(IAsyncEnumerable)), ane => ane.ParamName == "second"); var res = AsyncQueryableEx.OnErrorResumeNext(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), new int[] { default(int) }.ToAsyncEnumerable()); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void Retry1() { AssertEx.Throws(() => AsyncQueryableEx.Retry(default(IAsyncQueryable)), ane => ane.ParamName == "source"); var res = AsyncQueryableEx.Retry(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable()); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void Retry2() { AssertEx.Throws(() => AsyncQueryableEx.Retry(default(IAsyncQueryable), 1), ane => ane.ParamName == "source"); var res = AsyncQueryableEx.Retry(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), 1); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void Scan1() { AssertEx.Throws(() => AsyncQueryableEx.Scan(default(IAsyncQueryable), (int arg0, int arg1) => default(int)), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.Scan(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>)), ane => ane.ParamName == "accumulator"); var res = AsyncQueryableEx.Scan(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0, int arg1) => default(int)); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void Scan2() { AssertEx.Throws(() => AsyncQueryableEx.Scan(default(IAsyncQueryable), (int arg0, int arg1) => default(Task)), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.Scan(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(Expression>>)), ane => ane.ParamName == "accumulator"); var res = AsyncQueryableEx.Scan(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), (int arg0, int arg1) => default(Task)); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void Scan3() { AssertEx.Throws(() => AsyncQueryableEx.Scan(default(IAsyncQueryable), 1, (int arg0, int arg1) => default(int)), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.Scan(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), 1, default(Expression>)), ane => ane.ParamName == "accumulator"); var res = AsyncQueryableEx.Scan(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), 1, (int arg0, int arg1) => default(int)); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void Scan4() { AssertEx.Throws(() => AsyncQueryableEx.Scan(default(IAsyncQueryable), 1, (int arg0, int arg1) => default(Task)), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.Scan(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), 1, default(Expression>>)), ane => ane.ParamName == "accumulator"); var res = AsyncQueryableEx.Scan(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), 1, (int arg0, int arg1) => default(Task)); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void SelectMany1() { AssertEx.Throws(() => AsyncQueryableEx.SelectMany(default(IAsyncQueryable), new int[] { default(int) }.ToAsyncEnumerable()), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.SelectMany(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(IAsyncEnumerable)), ane => ane.ParamName == "other"); var res = AsyncQueryableEx.SelectMany(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), new int[] { default(int) }.ToAsyncEnumerable()); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } [Fact] public void StartWith1() { AssertEx.Throws(() => AsyncQueryableEx.StartWith(default(IAsyncQueryable), new int[] { default(int) }), ane => ane.ParamName == "source"); AssertEx.Throws(() => AsyncQueryableEx.StartWith(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), default(int[])), ane => ane.ParamName == "values"); var res = AsyncQueryableEx.StartWith(new int[] { default(int) }.ToAsyncEnumerable().AsAsyncQueryable(), new int[] { default(int) }); var task = res.ForEachAsync(_ => { }); AssertEx.SucceedOrFailProper(() => task.Wait()); } } }