PageRenderTime 42ms CodeModel.GetById 18ms RepoModel.GetById 1ms app.codeStats 0ms

/Rx 1.1.10425/Testing/Rxx.UnitTests/Reactive/TraceIdentityTests - System.Diagnostics.TraceSouce.cs

#
C# | 205 lines | 145 code | 60 blank | 0 comment | 10 complexity | 44b97170090abd8fbd1469f8bd4a699b 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. public partial class TraceIdentityTests : RxxTraceTests
  8. {
  9. [TestMethod]
  10. public void RxTraceSourceIdentity()
  11. {
  12. var source = CreateTraceSource();
  13. var xs = Observable.Range(0, 5);
  14. for (int i = 0; i < 3; i++)
  15. {
  16. xs.TraceIdentity(source).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. }
  24. [TestMethod]
  25. public void RxTraceSourceIdentityOnNext()
  26. {
  27. var source = CreateTraceSource();
  28. var xs = Observable.Range(0, 5);
  29. for (int i = 0; i < 3; i++)
  30. {
  31. xs.TraceIdentityOnNext(source).ForEach();
  32. string id = GetCurrentId();
  33. AssertEqual(Listener.Messages, Enumerable.Range(0, 5).Select(value => TraceDefaults.DefaultOnNext(id, value)));
  34. Listener.Clear();
  35. }
  36. }
  37. [TestMethod]
  38. public void RxTraceSourceIdentityOnNextFormat()
  39. {
  40. var source = CreateTraceSource();
  41. var xs = Observable.Range(0, 5);
  42. for (int i = 0; i < 3; i++)
  43. {
  44. xs.TraceIdentityOnNext(source, "OnNext: {0}={1}").ForEach();
  45. string id = GetCurrentId();
  46. AssertEqual(Listener.Messages, Enumerable.Range(0, 5).Select(value => "OnNext: " + id + "=" + value));
  47. Listener.Clear();
  48. }
  49. }
  50. [TestMethod]
  51. public void RxTraceSourceIdentityOnNextLazyMessage()
  52. {
  53. var source = CreateTraceSource();
  54. var xs = Observable.Range(0, 5);
  55. for (int i = 0; i < 3; i++)
  56. {
  57. xs.TraceIdentityOnNext(source, (oId, value) => "OnNext: " + oId + "=" + value).ForEach();
  58. string id = GetCurrentId();
  59. AssertEqual(Listener.Messages, Enumerable.Range(0, 5).Select(value => "OnNext: " + id + "=" + value));
  60. Listener.Clear();
  61. }
  62. }
  63. [TestMethod]
  64. public void RxTraceSourceIdentityOnError()
  65. {
  66. var source = CreateTraceSource();
  67. var ex = new Exception("Error");
  68. var xs = Observable.Throw<int>(ex);
  69. for (int i = 0; i < 3; i++)
  70. {
  71. xs.TraceIdentityOnError(source).ForEach(_ => { }, __ => { });
  72. string id = GetCurrentId();
  73. AssertEqual(Listener.Messages, TraceDefaults.DefaultOnError(id, ex));
  74. Listener.Clear();
  75. }
  76. }
  77. [TestMethod]
  78. public void RxTraceSourceIdentityOnErrorFormat()
  79. {
  80. var source = CreateTraceSource();
  81. var ex = new Exception("Error");
  82. var xs = Observable.Throw<int>(ex);
  83. for (int i = 0; i < 3; i++)
  84. {
  85. xs.TraceIdentityOnError(source, "OnError: {0}={1}").ForEach(_ => { }, __ => { });
  86. string id = GetCurrentId();
  87. AssertEqual(Listener.Messages, "OnError: " + id + "=" + ex.ToString());
  88. Listener.Clear();
  89. }
  90. }
  91. [TestMethod]
  92. public void RxTraceSourceIdentityOnErrorLazyMessage()
  93. {
  94. var source = CreateTraceSource();
  95. var ex = new Exception("Error");
  96. var xs = Observable.Throw<int>(ex);
  97. for (int i = 0; i < 3; i++)
  98. {
  99. xs.TraceIdentityOnError(source, (oId, error) => "OnError: " + oId + "=" + error.Message).ForEach(_ => { }, __ => { });
  100. string id = GetCurrentId();
  101. AssertEqual(Listener.Messages, "OnError: " + id + "=" + ex.Message);
  102. Listener.Clear();
  103. }
  104. }
  105. [TestMethod]
  106. public void RxTraceSourceIdentityOnCompleted()
  107. {
  108. var source = CreateTraceSource();
  109. var xs = Observable.Range(0, 5);
  110. for (int i = 0; i < 3; i++)
  111. {
  112. xs.TraceIdentityOnCompleted(source).ForEach();
  113. string id = GetCurrentId();
  114. AssertEqual(Listener.Messages, TraceDefaults.DefaultOnCompleted(id));
  115. Listener.Clear();
  116. }
  117. }
  118. [TestMethod]
  119. public void RxTraceSourceIdentityOnCompletedFormat()
  120. {
  121. var source = CreateTraceSource();
  122. var xs = Observable.Range(0, 5);
  123. for (int i = 0; i < 3; i++)
  124. {
  125. xs.TraceIdentityOnCompleted(source, "OnCompleted: {0}").ForEach();
  126. string id = GetCurrentId();
  127. AssertEqual(Listener.Messages, "OnCompleted: " + id);
  128. Listener.Clear();
  129. }
  130. }
  131. [TestMethod]
  132. public void RxTraceSourceIdentityOnCompletedLazyMessage()
  133. {
  134. var source = CreateTraceSource();
  135. var xs = Observable.Range(0, 5);
  136. for (int i = 0; i < 3; i++)
  137. {
  138. xs.TraceIdentityOnCompleted(source, oId => "OnCompleted: " + oId).ForEach();
  139. string id = GetCurrentId();
  140. AssertEqual(Listener.Messages, "OnCompleted: " + id);
  141. Listener.Clear();
  142. }
  143. }
  144. }
  145. }