PageRenderTime 46ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

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

#
C# | 225 lines | 155 code | 70 blank | 0 comment | 10 complexity | d3cbe687489453c79a320843047b00e1 MD5 | raw file
  1. using System;
  2. using System.Linq;
  3. using Microsoft.VisualStudio.TestTools.UnitTesting;
  4. namespace Rxx.UnitTests.Interactive
  5. {
  6. [TestClass]
  7. public partial class TraceIdentityTests : RxxTraceTests
  8. {
  9. [TestMethod]
  10. public void IxTraceIdentity()
  11. {
  12. AddTraceListener();
  13. var xs = Enumerable.Range(0, 5);
  14. for (int i = 0; i < 3; i++)
  15. {
  16. xs.TraceIdentity().ForEach();
  17. string id = GetCurrentId();
  18. AssertEqual(Listener.Messages, Concat(
  19. Enumerable.Range(0, 5).Select(value => TraceDefaults.DefaultOnNext(id, value)),
  20. TraceDefaults.DefaultOnCompleted(id)));
  21. Listener.Clear();
  22. }
  23. RemoveTraceListener();
  24. }
  25. [TestMethod]
  26. public void IxTraceIdentityOnNext()
  27. {
  28. AddTraceListener();
  29. var xs = Enumerable.Range(0, 5);
  30. for (int i = 0; i < 3; i++)
  31. {
  32. xs.TraceIdentityOnNext().ForEach();
  33. string id = GetCurrentId();
  34. AssertEqual(Listener.Messages, Enumerable.Range(0, 5).Select(value => TraceDefaults.DefaultOnNext(id, value)));
  35. Listener.Clear();
  36. }
  37. RemoveTraceListener();
  38. }
  39. [TestMethod]
  40. public void IxTraceIdentityOnNextFormat()
  41. {
  42. AddTraceListener();
  43. var xs = Enumerable.Range(0, 5);
  44. for (int i = 0; i < 3; i++)
  45. {
  46. xs.TraceIdentityOnNext("OnNext: {0}={1}").ForEach();
  47. string id = GetCurrentId();
  48. AssertEqual(Listener.Messages, Enumerable.Range(0, 5).Select(value => "OnNext: " + id + "=" + value));
  49. Listener.Clear();
  50. }
  51. RemoveTraceListener();
  52. }
  53. [TestMethod]
  54. public void IxTraceIdentityOnNextLazyMessage()
  55. {
  56. AddTraceListener();
  57. var xs = Enumerable.Range(0, 5);
  58. for (int i = 0; i < 3; i++)
  59. {
  60. xs.TraceIdentityOnNext((oId, value) => "OnNext: " + oId + "=" + value).ForEach();
  61. string id = GetCurrentId();
  62. AssertEqual(Listener.Messages, Enumerable.Range(0, 5).Select(value => "OnNext: " + id + "=" + value));
  63. Listener.Clear();
  64. }
  65. RemoveTraceListener();
  66. }
  67. [TestMethod]
  68. public void IxTraceIdentityOnError()
  69. {
  70. AddTraceListener();
  71. var ex = new RxxMockException("Error");
  72. var xs = EnumerableEx.Throw<int>(ex);
  73. for (int i = 0; i < 3; i++)
  74. {
  75. xs.TraceIdentityOnError().Catch(Enumerable.Empty<int>()).ForEach();
  76. string id = GetCurrentId();
  77. AssertEqual(Listener.Messages, TraceDefaults.DefaultOnError(id, ex));
  78. Listener.Clear();
  79. }
  80. RemoveTraceListener();
  81. }
  82. [TestMethod]
  83. public void IxTraceIdentityOnErrorFormat()
  84. {
  85. AddTraceListener();
  86. var ex = new RxxMockException("Error");
  87. var xs = EnumerableEx.Throw<int>(ex);
  88. for (int i = 0; i < 3; i++)
  89. {
  90. xs.TraceIdentityOnError("OnError: {0}={1}").Catch(Enumerable.Empty<int>()).ForEach();
  91. string id = GetCurrentId();
  92. AssertEqual(Listener.Messages, "OnError: " + id + "=" + ex.ToString());
  93. Listener.Clear();
  94. }
  95. RemoveTraceListener();
  96. }
  97. [TestMethod]
  98. public void IxTraceIdentityOnErrorLazyMessage()
  99. {
  100. AddTraceListener();
  101. var ex = new RxxMockException("Error");
  102. var xs = EnumerableEx.Throw<int>(ex);
  103. for (int i = 0; i < 3; i++)
  104. {
  105. xs.TraceIdentityOnError((oId, error) => "OnError: " + oId + "=" + error.Message).Catch(Enumerable.Empty<int>()).ForEach();
  106. string id = GetCurrentId();
  107. AssertEqual(Listener.Messages, "OnError: " + id + "=" + ex.Message);
  108. Listener.Clear();
  109. }
  110. RemoveTraceListener();
  111. }
  112. [TestMethod]
  113. public void IxTraceIdentityOnCompleted()
  114. {
  115. AddTraceListener();
  116. var xs = Enumerable.Range(0, 5);
  117. for (int i = 0; i < 3; i++)
  118. {
  119. xs.TraceIdentityOnCompleted().ForEach();
  120. string id = GetCurrentId();
  121. AssertEqual(Listener.Messages, TraceDefaults.DefaultOnCompleted(id));
  122. Listener.Clear();
  123. }
  124. RemoveTraceListener();
  125. }
  126. [TestMethod]
  127. public void IxTraceIdentityOnCompletedFormat()
  128. {
  129. AddTraceListener();
  130. var xs = Enumerable.Range(0, 5);
  131. for (int i = 0; i < 3; i++)
  132. {
  133. xs.TraceIdentityOnCompleted("OnCompleted: {0}").ForEach();
  134. string id = GetCurrentId();
  135. AssertEqual(Listener.Messages, "OnCompleted: " + id);
  136. Listener.Clear();
  137. }
  138. RemoveTraceListener();
  139. }
  140. [TestMethod]
  141. public void IxTraceIdentityOnCompletedLazyMessage()
  142. {
  143. AddTraceListener();
  144. var xs = Enumerable.Range(0, 5);
  145. for (int i = 0; i < 3; i++)
  146. {
  147. xs.TraceIdentityOnCompleted(oId => "OnCompleted: " + oId).ForEach();
  148. string id = GetCurrentId();
  149. AssertEqual(Listener.Messages, "OnCompleted: " + id);
  150. Listener.Clear();
  151. }
  152. RemoveTraceListener();
  153. }
  154. }
  155. }