IgnoreElements.cs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  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 System.Threading.Tasks;
  8. using Xunit;
  9. namespace Tests
  10. {
  11. public class IgnoreElements : AsyncEnumerableExTests
  12. {
  13. [Fact]
  14. public void IgnoreElements_Null()
  15. {
  16. Assert.Throws<ArgumentNullException>(() => AsyncEnumerableEx.IgnoreElements(default(IAsyncEnumerable<int>)));
  17. }
  18. [Fact]
  19. public async Task IgnoreElements1Async()
  20. {
  21. var xs = AsyncEnumerable.Empty<int>().IgnoreElements();
  22. var e = xs.GetAsyncEnumerator();
  23. await NoNextAsync(e);
  24. }
  25. [Fact]
  26. public async Task IgnoreElements2Async()
  27. {
  28. var xs = Return42.IgnoreElements();
  29. var e = xs.GetAsyncEnumerator();
  30. await NoNextAsync(e);
  31. }
  32. [Fact]
  33. public async Task IgnoreElements3Async()
  34. {
  35. var xs = AsyncEnumerable.Range(0, 10).IgnoreElements();
  36. var e = xs.GetAsyncEnumerator();
  37. await NoNextAsync(e);
  38. }
  39. [Fact]
  40. public async Task IgnoreElements4Async()
  41. {
  42. var ex = new Exception("Bang!");
  43. var xs = Throw<int>(ex).IgnoreElements();
  44. var e = xs.GetAsyncEnumerator();
  45. await AssertThrowsAsync(e.MoveNextAsync(), ex);
  46. }
  47. [Fact]
  48. public async Task IgnoreElements5()
  49. {
  50. var xs = AsyncEnumerable.Range(0, 10).IgnoreElements();
  51. await SequenceIdentity(xs);
  52. }
  53. }
  54. }