PageRenderTime 40ms CodeModel.GetById 16ms RepoModel.GetById 1ms app.codeStats 0ms

/Main/Testing/Rxx.UnitTests/Reactive/TraceTests - System.Diagnostics.Trace.cs

#
C# | 156 lines | 106 code | 50 blank | 0 comment | 0 complexity | 9a2185bf614ef78b02d76c541adeb1cb MD5 | raw file
  1. using System;
  2. using System.Linq;
  3. using System.Reactive.Linq;
  4. using Microsoft.VisualStudio.TestTools.UnitTesting;
  5. namespace Rxx.UnitTests.Reactive
  6. {
  7. [TestClass]
  8. public partial class TraceTests : RxxTraceTests
  9. {
  10. [TestMethod]
  11. public void RxTrace()
  12. {
  13. AddTraceListener();
  14. var xs = Observable.Range(0, 5);
  15. xs.Trace().Subscribe();
  16. AssertEqual(Listener.Messages, Concat(
  17. Enumerable.Range(0, 5).Select(value => TraceDefaults.DefaultOnNext(value)),
  18. TraceDefaults.DefaultOnCompleted()));
  19. RemoveTraceListener();
  20. }
  21. [TestMethod]
  22. public void RxTraceOnNext()
  23. {
  24. AddTraceListener();
  25. var xs = Observable.Range(0, 5);
  26. xs.TraceOnNext().Subscribe();
  27. AssertEqual(Listener.Messages, Enumerable.Range(0, 5).Select(value => TraceDefaults.DefaultOnNext(value)));
  28. RemoveTraceListener();
  29. }
  30. [TestMethod]
  31. public void RxTraceOnNextFormat()
  32. {
  33. AddTraceListener();
  34. var xs = Observable.Range(0, 5);
  35. xs.TraceOnNext("OnNext: {0}").Subscribe();
  36. AssertEqual(Listener.Messages, Enumerable.Range(0, 5).Select(value => "OnNext: " + value));
  37. RemoveTraceListener();
  38. }
  39. [TestMethod]
  40. public void RxTraceOnNextLazyMessage()
  41. {
  42. AddTraceListener();
  43. var xs = Observable.Range(0, 5);
  44. xs.TraceOnNext(value => "OnNext: " + value).Subscribe();
  45. AssertEqual(Listener.Messages, Enumerable.Range(0, 5).Select(value => "OnNext: " + value));
  46. RemoveTraceListener();
  47. }
  48. [TestMethod]
  49. public void RxTraceOnError()
  50. {
  51. AddTraceListener();
  52. var ex = new Exception("Error");
  53. var xs = Observable.Throw<int>(ex);
  54. xs.TraceOnError().Subscribe(_ => { }, __ => { });
  55. AssertEqual(Listener.Messages, TraceDefaults.DefaultOnError(ex));
  56. RemoveTraceListener();
  57. }
  58. [TestMethod]
  59. public void RxTraceOnErrorFormat()
  60. {
  61. AddTraceListener();
  62. var ex = new Exception("Error");
  63. var xs = Observable.Throw<int>(ex);
  64. xs.TraceOnError("OnError: {0}").Subscribe(_ => { }, __ => { });
  65. AssertEqual(Listener.Messages, "OnError: " + ex.ToString());
  66. RemoveTraceListener();
  67. }
  68. [TestMethod]
  69. public void RxTraceOnErrorLazyMessage()
  70. {
  71. AddTraceListener();
  72. var ex = new Exception("Error");
  73. var xs = Observable.Throw<int>(ex);
  74. xs.TraceOnError(error => "OnError: " + error.Message).Subscribe(_ => { }, __ => { });
  75. AssertEqual(Listener.Messages, "OnError: " + ex.Message);
  76. RemoveTraceListener();
  77. }
  78. [TestMethod]
  79. public void RxTraceOnCompleted()
  80. {
  81. AddTraceListener();
  82. var xs = Observable.Range(0, 5);
  83. xs.TraceOnCompleted().Subscribe();
  84. AssertEqual(Listener.Messages, TraceDefaults.DefaultOnCompleted());
  85. RemoveTraceListener();
  86. }
  87. [TestMethod]
  88. public void RxTraceOnCompletedFormat()
  89. {
  90. AddTraceListener();
  91. var xs = Observable.Range(0, 5);
  92. xs.TraceOnCompleted("OnCompleted").Subscribe();
  93. AssertEqual(Listener.Messages, "OnCompleted");
  94. RemoveTraceListener();
  95. }
  96. [TestMethod]
  97. public void RxTraceOnCompletedLazyMessage()
  98. {
  99. AddTraceListener();
  100. var xs = Observable.Range(0, 5);
  101. xs.TraceOnCompleted(() => "OnCompleted").Subscribe();
  102. AssertEqual(Listener.Messages, "OnCompleted");
  103. RemoveTraceListener();
  104. }
  105. }
  106. }