OnErrorResumeNextTest.cs 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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.Text;
  7. using System.Linq;
  8. using Xunit;
  9. namespace Tests
  10. {
  11. public class OnErrorResumeNextTest : Tests
  12. {
  13. [Fact]
  14. public void OnErrorResumeNext_Arguments()
  15. {
  16. AssertThrows<ArgumentNullException>(() => EnumerableEx.OnErrorResumeNext<int>(null, new[] { 1 }));
  17. AssertThrows<ArgumentNullException>(() => EnumerableEx.OnErrorResumeNext<int>(new[] { 1 }, null));
  18. AssertThrows<ArgumentNullException>(() => EnumerableEx.OnErrorResumeNext<int>(default));
  19. AssertThrows<ArgumentNullException>(() => EnumerableEx.OnErrorResumeNext<int>(default(IEnumerable<IEnumerable<int>>)));
  20. }
  21. [Fact]
  22. public void OnErrorResumeNext1()
  23. {
  24. var xs = new[] { 1, 2 };
  25. var ys = new[] { 3, 4 };
  26. var res = xs.OnErrorResumeNext(ys);
  27. Assert.True(Enumerable.SequenceEqual(res, new[] { 1, 2, 3, 4 }));
  28. }
  29. [Fact]
  30. public void OnErrorResumeNext2()
  31. {
  32. var xs = new[] { 1, 2 }.Concat(EnumerableEx.Throw<int>(new MyException()));
  33. var ys = new[] { 3, 4 };
  34. var res = xs.OnErrorResumeNext(ys);
  35. Assert.True(Enumerable.SequenceEqual(res, new[] { 1, 2, 3, 4 }));
  36. }
  37. [Fact]
  38. public void OnErrorResumeNext3()
  39. {
  40. var xs = new[] { 1, 2 };
  41. var ys = new[] { 3, 4 };
  42. var zs = new[] { 5, 6 };
  43. var res = EnumerableEx.OnErrorResumeNext(xs, ys, zs);
  44. Assert.True(Enumerable.SequenceEqual(res, new[] { 1, 2, 3, 4, 5, 6 }));
  45. }
  46. [Fact]
  47. public void OnErrorResumeNext4()
  48. {
  49. var xs = new[] { 1, 2 }.Concat(EnumerableEx.Throw<int>(new MyException()));
  50. var ys = new[] { 3, 4 };
  51. var zs = new[] { 5, 6 };
  52. var res = EnumerableEx.OnErrorResumeNext(xs, ys, zs);
  53. Assert.True(Enumerable.SequenceEqual(res, new[] { 1, 2, 3, 4, 5, 6 }));
  54. }
  55. [Fact]
  56. public void OnErrorResumeNext5()
  57. {
  58. var xs = new[] { 1, 2 };
  59. var ys = new[] { 3, 4 };
  60. var res = new[] { xs, ys }.OnErrorResumeNext();
  61. Assert.True(Enumerable.SequenceEqual(res, new[] { 1, 2, 3, 4 }));
  62. }
  63. [Fact]
  64. public void OnErrorResumeNext6()
  65. {
  66. var xs = new[] { 1, 2 }.Concat(EnumerableEx.Throw<int>(new MyException()));
  67. var ys = new[] { 3, 4 };
  68. var res = new[] { xs, ys }.OnErrorResumeNext();
  69. Assert.True(Enumerable.SequenceEqual(res, new[] { 1, 2, 3, 4 }));
  70. }
  71. }
  72. }