PageRenderTime 35ms CodeModel.GetById 13ms RepoModel.GetById 0ms app.codeStats 0ms

/Main/Testing/Rxx.UnitTests/Interactive/TraceTests - System.Diagnostics.TraceSouce.cs

#
C# | 134 lines | 94 code | 40 blank | 0 comment | 0 complexity | 331d60f985c39ce57b5d7a250ff6a072 MD5 | raw file
  1. using System;
  2. using System.Linq;
  3. using Microsoft.VisualStudio.TestTools.UnitTesting;
  4. namespace Rxx.UnitTests.Interactive
  5. {
  6. public partial class TraceTests : RxxTraceTests
  7. {
  8. [TestMethod]
  9. public void IxTraceSource()
  10. {
  11. var source = CreateTraceSource();
  12. var xs = Enumerable.Range(0, 5);
  13. xs.Trace(source).ForEach();
  14. AssertEqual(Listener.Messages, Concat(
  15. Enumerable.Range(0, 5).Select(value => TraceDefaults.DefaultOnNext(value)),
  16. TraceDefaults.DefaultOnCompleted()));
  17. }
  18. [TestMethod]
  19. public void IxTraceSourceOnNext()
  20. {
  21. var source = CreateTraceSource();
  22. var xs = Enumerable.Range(0, 5);
  23. xs.TraceOnNext(source).ForEach();
  24. AssertEqual(Listener.Messages, Enumerable.Range(0, 5).Select(value => TraceDefaults.DefaultOnNext(value)));
  25. }
  26. [TestMethod]
  27. public void IxTraceSourceOnNextFormat()
  28. {
  29. var source = CreateTraceSource();
  30. var xs = Enumerable.Range(0, 5);
  31. xs.TraceOnNext(source, "OnNext: {0}").ForEach();
  32. AssertEqual(Listener.Messages, Enumerable.Range(0, 5).Select(value => "OnNext: " + value));
  33. }
  34. [TestMethod]
  35. public void IxTraceSourceOnNextLazyMessage()
  36. {
  37. var source = CreateTraceSource();
  38. var xs = Enumerable.Range(0, 5);
  39. xs.TraceOnNext(source, value => "OnNext: " + value).ForEach();
  40. AssertEqual(Listener.Messages, Enumerable.Range(0, 5).Select(value => "OnNext: " + value));
  41. }
  42. [TestMethod]
  43. public void IxTraceSourceOnError()
  44. {
  45. var source = CreateTraceSource();
  46. var ex = new RxxMockException("Error");
  47. var xs = EnumerableEx.Throw<int>(ex);
  48. xs.TraceOnError(source).Catch(Enumerable.Empty<int>()).ForEach();
  49. AssertEqual(Listener.Messages, TraceDefaults.DefaultOnError(ex));
  50. }
  51. [TestMethod]
  52. public void IxTraceSourceOnErrorFormat()
  53. {
  54. var source = CreateTraceSource();
  55. var ex = new RxxMockException("Error");
  56. var xs = EnumerableEx.Throw<int>(ex);
  57. xs.TraceOnError(source, "OnError: {0}").Catch(Enumerable.Empty<int>()).ForEach();
  58. AssertEqual(Listener.Messages, "OnError: " + ex.ToString());
  59. }
  60. [TestMethod]
  61. public void IxTraceSourceOnErrorLazyMessage()
  62. {
  63. var source = CreateTraceSource();
  64. var ex = new RxxMockException("Error");
  65. var xs = EnumerableEx.Throw<int>(ex);
  66. xs.TraceOnError(source, error => "OnError: " + error.Message).Catch(Enumerable.Empty<int>()).ForEach();
  67. AssertEqual(Listener.Messages, "OnError: " + ex.Message);
  68. }
  69. [TestMethod]
  70. public void IxTraceSourceOnCompleted()
  71. {
  72. var source = CreateTraceSource();
  73. var xs = Enumerable.Range(0, 5);
  74. xs.TraceOnCompleted(source).ForEach();
  75. AssertEqual(Listener.Messages, TraceDefaults.DefaultOnCompleted());
  76. }
  77. [TestMethod]
  78. public void IxTraceSourceOnCompletedFormat()
  79. {
  80. var source = CreateTraceSource();
  81. var xs = Enumerable.Range(0, 5);
  82. xs.TraceOnCompleted(source, "OnCompleted").ForEach();
  83. AssertEqual(Listener.Messages, "OnCompleted");
  84. }
  85. [TestMethod]
  86. public void IxTraceSourceOnCompletedLazyMessage()
  87. {
  88. var source = CreateTraceSource();
  89. var xs = Enumerable.Range(0, 5);
  90. xs.TraceOnCompleted(source, () => "OnCompleted").ForEach();
  91. AssertEqual(Listener.Messages, "OnCompleted");
  92. }
  93. }
  94. }