// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the Apache 2.0 License. // See the LICENSE file in the project root for more information. using System; using System.Collections.Generic; using System.Linq; using Xunit; using System.Collections; using System.Threading; using System.Threading.Tasks; // ReSharper disable InvokeAsExtensionMethod // ReSharper disable InconsistentNaming // ReSharper disable RedundantTypeArgumentsOfMethod namespace Tests { public partial class AsyncTests { private const int WaitTimeoutMs = 5000; [Fact] public async Task IsEmpty_Null() { await Assert.ThrowsAsync(() => AsyncEnumerableEx.IsEmpty(null)); await Assert.ThrowsAsync(() => AsyncEnumerableEx.IsEmpty(null, CancellationToken.None)); } [Fact] public async Task Min_Null() { await Assert.ThrowsAsync(() => AsyncEnumerableEx.Min(default(IAsyncEnumerable), Comparer.Default)); await Assert.ThrowsAsync(() => AsyncEnumerableEx.Min(AsyncEnumerable.Empty(), default(IComparer))); await Assert.ThrowsAsync(() => AsyncEnumerableEx.Min(default(IAsyncEnumerable), Comparer.Default, CancellationToken.None)); await Assert.ThrowsAsync(() => AsyncEnumerableEx.Min(AsyncEnumerable.Empty(), default(IComparer), CancellationToken.None)); } [Fact] public async Task Max_Null() { await Assert.ThrowsAsync(() => AsyncEnumerableEx.Max(default(IAsyncEnumerable), Comparer.Default)); await Assert.ThrowsAsync(() => AsyncEnumerableEx.Max(AsyncEnumerable.Empty(), default(IComparer))); await Assert.ThrowsAsync(() => AsyncEnumerableEx.Max(default(IAsyncEnumerable), Comparer.Default, CancellationToken.None)); await Assert.ThrowsAsync(() => AsyncEnumerableEx.Max(AsyncEnumerable.Empty(), default(IComparer), CancellationToken.None)); } private sealed class Eq : IEqualityComparer { public bool Equals(int x, int y) { return EqualityComparer.Default.Equals(Math.Abs(x), Math.Abs(y)); } public int GetHashCode(int obj) { return EqualityComparer.Default.GetHashCode(Math.Abs(obj)); } } } }