PageRenderTime 44ms CodeModel.GetById 15ms RepoModel.GetById 1ms app.codeStats 0ms

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

#
C# | 226 lines | 156 code | 70 blank | 0 comment | 10 complexity | ebcd7203707299dc0dbc717c5067d83d 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 TraceIdentityTests : RxxTraceTests
  9. {
  10. [TestMethod]
  11. public void RxTraceIdentity()
  12. {
  13. AddTraceListener();
  14. var xs = Observable.Range(0, 5);
  15. for (int i = 0; i < 3; i++)
  16. {
  17. xs.TraceIdentity().Subscribe();
  18. string id = GetCurrentId();
  19. AssertEqual(Listener.Messages, Concat(
  20. Enumerable.Range(0, 5).Select(value => TraceDefaults.DefaultOnNext(id, value)),
  21. TraceDefaults.DefaultOnCompleted(id)));
  22. Listener.Clear();
  23. }
  24. RemoveTraceListener();
  25. }
  26. [TestMethod]
  27. public void RxTraceIdentityOnNext()
  28. {
  29. AddTraceListener();
  30. var xs = Observable.Range(0, 5);
  31. for (int i = 0; i < 3; i++)
  32. {
  33. xs.TraceIdentityOnNext().Subscribe();
  34. string id = GetCurrentId();
  35. AssertEqual(Listener.Messages, Enumerable.Range(0, 5).Select(value => TraceDefaults.DefaultOnNext(id, value)));
  36. Listener.Clear();
  37. }
  38. RemoveTraceListener();
  39. }
  40. [TestMethod]
  41. public void RxTraceIdentityOnNextFormat()
  42. {
  43. AddTraceListener();
  44. var xs = Observable.Range(0, 5);
  45. for (int i = 0; i < 3; i++)
  46. {
  47. xs.TraceIdentityOnNext("OnNext: {0}={1}").Subscribe();
  48. string id = GetCurrentId();
  49. AssertEqual(Listener.Messages, Enumerable.Range(0, 5).Select(value => "OnNext: " + id + "=" + value));
  50. Listener.Clear();
  51. }
  52. RemoveTraceListener();
  53. }
  54. [TestMethod]
  55. public void RxTraceIdentityOnNextLazyMessage()
  56. {
  57. AddTraceListener();
  58. var xs = Observable.Range(0, 5);
  59. for (int i = 0; i < 3; i++)
  60. {
  61. xs.TraceIdentityOnNext((oId, value) => "OnNext: " + oId + "=" + value).Subscribe();
  62. string id = GetCurrentId();
  63. AssertEqual(Listener.Messages, Enumerable.Range(0, 5).Select(value => "OnNext: " + id + "=" + value));
  64. Listener.Clear();
  65. }
  66. RemoveTraceListener();
  67. }
  68. [TestMethod]
  69. public void RxTraceIdentityOnError()
  70. {
  71. AddTraceListener();
  72. var ex = new Exception("Error");
  73. var xs = Observable.Throw<int>(ex);
  74. for (int i = 0; i < 3; i++)
  75. {
  76. xs.TraceIdentityOnError().Subscribe(_ => { }, __ => { });
  77. string id = GetCurrentId();
  78. AssertEqual(Listener.Messages, TraceDefaults.DefaultOnError(id, ex));
  79. Listener.Clear();
  80. }
  81. RemoveTraceListener();
  82. }
  83. [TestMethod]
  84. public void RxTraceIdentityOnErrorFormat()
  85. {
  86. AddTraceListener();
  87. var ex = new Exception("Error");
  88. var xs = Observable.Throw<int>(ex);
  89. for (int i = 0; i < 3; i++)
  90. {
  91. xs.TraceIdentityOnError("OnError: {0}={1}").Subscribe(_ => { }, __ => { });
  92. string id = GetCurrentId();
  93. AssertEqual(Listener.Messages, "OnError: " + id + "=" + ex.ToString());
  94. Listener.Clear();
  95. }
  96. RemoveTraceListener();
  97. }
  98. [TestMethod]
  99. public void RxTraceIdentityOnErrorLazyMessage()
  100. {
  101. AddTraceListener();
  102. var ex = new Exception("Error");
  103. var xs = Observable.Throw<int>(ex);
  104. for (int i = 0; i < 3; i++)
  105. {
  106. xs.TraceIdentityOnError((oId, error) => "OnError: " + oId + "=" + error.Message).Subscribe(_ => { }, __ => { });
  107. string id = GetCurrentId();
  108. AssertEqual(Listener.Messages, "OnError: " + id + "=" + ex.Message);
  109. Listener.Clear();
  110. }
  111. RemoveTraceListener();
  112. }
  113. [TestMethod]
  114. public void RxTraceIdentityOnCompleted()
  115. {
  116. AddTraceListener();
  117. var xs = Observable.Range(0, 5);
  118. for (int i = 0; i < 3; i++)
  119. {
  120. xs.TraceIdentityOnCompleted().Subscribe();
  121. string id = GetCurrentId();
  122. AssertEqual(Listener.Messages, TraceDefaults.DefaultOnCompleted(id));
  123. Listener.Clear();
  124. }
  125. RemoveTraceListener();
  126. }
  127. [TestMethod]
  128. public void RxTraceIdentityOnCompletedFormat()
  129. {
  130. AddTraceListener();
  131. var xs = Observable.Range(0, 5);
  132. for (int i = 0; i < 3; i++)
  133. {
  134. xs.TraceIdentityOnCompleted("OnCompleted: {0}").Subscribe();
  135. string id = GetCurrentId();
  136. AssertEqual(Listener.Messages, "OnCompleted: " + id);
  137. Listener.Clear();
  138. }
  139. RemoveTraceListener();
  140. }
  141. [TestMethod]
  142. public void RxTraceIdentityOnCompletedLazyMessage()
  143. {
  144. AddTraceListener();
  145. var xs = Observable.Range(0, 5);
  146. for (int i = 0; i < 3; i++)
  147. {
  148. xs.TraceIdentityOnCompleted(oId => "OnCompleted: " + oId).Subscribe();
  149. string id = GetCurrentId();
  150. AssertEqual(Listener.Messages, "OnCompleted: " + id);
  151. Listener.Clear();
  152. }
  153. RemoveTraceListener();
  154. }
  155. }
  156. }