AsyncTests.Aggregates.cs 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. // Licensed to the .NET Foundation under one or more agreements.
  2. // The .NET Foundation licenses this file to you under the Apache 2.0 License.
  3. // See the LICENSE file in the project root for more information.
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using Xunit;
  8. using System.Collections;
  9. using System.Threading;
  10. using System.Threading.Tasks;
  11. // ReSharper disable InvokeAsExtensionMethod
  12. // ReSharper disable InconsistentNaming
  13. // ReSharper disable RedundantTypeArgumentsOfMethod
  14. namespace Tests
  15. {
  16. public partial class AsyncTests
  17. {
  18. private const int WaitTimeoutMs = 5000;
  19. [Fact]
  20. public async Task IsEmpty_Null()
  21. {
  22. await Assert.ThrowsAsync<ArgumentNullException>(() => AsyncEnumerableEx.IsEmpty<int>(null));
  23. await Assert.ThrowsAsync<ArgumentNullException>(() => AsyncEnumerableEx.IsEmpty<int>(null, CancellationToken.None));
  24. }
  25. [Fact]
  26. public async Task Min_Null()
  27. {
  28. await Assert.ThrowsAsync<ArgumentNullException>(() => AsyncEnumerableEx.Min(default(IAsyncEnumerable<DateTime>), Comparer<DateTime>.Default));
  29. await Assert.ThrowsAsync<ArgumentNullException>(() => AsyncEnumerableEx.Min(AsyncEnumerable.Empty<DateTime>(), default(IComparer<DateTime>)));
  30. await Assert.ThrowsAsync<ArgumentNullException>(() => AsyncEnumerableEx.Min(default(IAsyncEnumerable<DateTime>), Comparer<DateTime>.Default, CancellationToken.None));
  31. await Assert.ThrowsAsync<ArgumentNullException>(() => AsyncEnumerableEx.Min(AsyncEnumerable.Empty<DateTime>(), default(IComparer<DateTime>), CancellationToken.None));
  32. }
  33. [Fact]
  34. public async Task Max_Null()
  35. {
  36. await Assert.ThrowsAsync<ArgumentNullException>(() => AsyncEnumerableEx.Max(default(IAsyncEnumerable<DateTime>), Comparer<DateTime>.Default));
  37. await Assert.ThrowsAsync<ArgumentNullException>(() => AsyncEnumerableEx.Max(AsyncEnumerable.Empty<DateTime>(), default(IComparer<DateTime>)));
  38. await Assert.ThrowsAsync<ArgumentNullException>(() => AsyncEnumerableEx.Max(default(IAsyncEnumerable<DateTime>), Comparer<DateTime>.Default, CancellationToken.None));
  39. await Assert.ThrowsAsync<ArgumentNullException>(() => AsyncEnumerableEx.Max(AsyncEnumerable.Empty<DateTime>(), default(IComparer<DateTime>), CancellationToken.None));
  40. }
  41. private sealed class Eq : IEqualityComparer<int>
  42. {
  43. public bool Equals(int x, int y)
  44. {
  45. return EqualityComparer<int>.Default.Equals(Math.Abs(x), Math.Abs(y));
  46. }
  47. public int GetHashCode(int obj)
  48. {
  49. return EqualityComparer<int>.Default.GetHashCode(Math.Abs(obj));
  50. }
  51. }
  52. }
  53. }