TimeTests.cs 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. // Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.
  2. using System;
  3. using System.Reactive;
  4. using Microsoft.VisualStudio.TestTools.UnitTesting;
  5. namespace ReactiveTests.Tests
  6. {
  7. [TestClass]
  8. public class TimeTests
  9. {
  10. [TestMethod]
  11. public void TimeInterval_Ctor_Properties()
  12. {
  13. var ti = new TimeInterval<int>(42, TimeSpan.FromSeconds(123.45));
  14. Assert.AreEqual(42, ti.Value);
  15. Assert.AreEqual(TimeSpan.FromSeconds(123.45), ti.Interval);
  16. }
  17. [TestMethod]
  18. public void TimeInterval_Equals()
  19. {
  20. var ti = new TimeInterval<int>(42, TimeSpan.FromSeconds(123.45));
  21. Assert.IsFalse(ti.Equals("x"));
  22. Assert.IsFalse(((object)ti).Equals("x"));
  23. Assert.IsTrue(ti.Equals(ti));
  24. Assert.IsTrue(((object)ti).Equals(ti));
  25. var t2 = new TimeInterval<int>(43, TimeSpan.FromSeconds(123.45));
  26. Assert.IsFalse(ti.Equals(t2));
  27. Assert.IsFalse(((object)ti).Equals(t2));
  28. var t3 = new TimeInterval<int>(42, TimeSpan.FromSeconds(123.56));
  29. Assert.IsFalse(ti.Equals(t3));
  30. Assert.IsFalse(((object)ti).Equals(t3));
  31. var t4 = new TimeInterval<int>(42, TimeSpan.FromSeconds(123.45));
  32. Assert.IsTrue(ti.Equals(t4));
  33. Assert.IsTrue(((object)ti).Equals(t4));
  34. }
  35. [TestMethod]
  36. public void TimeInterval_GetHashCode()
  37. {
  38. var ti = new TimeInterval<string>(null, TimeSpan.FromSeconds(123.45));
  39. Assert.IsTrue(ti.GetHashCode() != 0);
  40. Assert.AreEqual(ti.GetHashCode(), ti.GetHashCode());
  41. var t2 = new TimeInterval<string>("", TimeSpan.FromSeconds(123.45));
  42. Assert.AreNotEqual(ti.GetHashCode(), t2.GetHashCode());
  43. }
  44. [TestMethod]
  45. public void TimeInterval_EqualsOperators()
  46. {
  47. var ti = new TimeInterval<int>(42, TimeSpan.FromSeconds(123.45));
  48. var t2 = new TimeInterval<int>(43, TimeSpan.FromSeconds(123.45));
  49. Assert.IsFalse(ti == t2);
  50. Assert.IsFalse(t2 == ti);
  51. Assert.IsTrue(ti != t2);
  52. Assert.IsTrue(t2 != ti);
  53. var t3 = new TimeInterval<int>(42, TimeSpan.FromSeconds(123.56));
  54. Assert.IsFalse(ti == t3);
  55. Assert.IsFalse(t3 == ti);
  56. Assert.IsTrue(ti != t3);
  57. Assert.IsTrue(t3 != ti);
  58. var t4 = new TimeInterval<int>(42, TimeSpan.FromSeconds(123.45));
  59. Assert.IsTrue(ti == t4);
  60. Assert.IsTrue(t4 == ti);
  61. Assert.IsFalse(ti != t4);
  62. Assert.IsFalse(t4 != ti);
  63. }
  64. [TestMethod]
  65. public void TimeInterval_ToString()
  66. {
  67. var ti = new TimeInterval<int>(42, TimeSpan.FromSeconds(123.45));
  68. Assert.IsTrue(ti.ToString().Contains(42.ToString()));
  69. Assert.IsTrue(ti.ToString().Contains(TimeSpan.FromSeconds(123.45).ToString()));
  70. }
  71. [TestMethod]
  72. public void TimeStamped_Ctor_Properties()
  73. {
  74. var o = new DateTimeOffset();
  75. var ti = new Timestamped<int>(42, o);
  76. Assert.AreEqual(42, ti.Value);
  77. Assert.AreEqual(o, ti.Timestamp);
  78. }
  79. [TestMethod]
  80. public void TimeStamped_Equals()
  81. {
  82. var ti = new Timestamped<int>(42, new DateTimeOffset());
  83. Assert.IsFalse(ti.Equals("x"));
  84. Assert.IsFalse(((object)ti).Equals("x"));
  85. Assert.IsTrue(ti.Equals(ti));
  86. Assert.IsTrue(((object)ti).Equals(ti));
  87. var t2 = new Timestamped<int>(43, new DateTimeOffset());
  88. Assert.IsFalse(ti.Equals(t2));
  89. Assert.IsFalse(((object)ti).Equals(t2));
  90. var t3 = new Timestamped<int>(42, new DateTimeOffset().AddDays(1));
  91. Assert.IsFalse(ti.Equals(t3));
  92. Assert.IsFalse(((object)ti).Equals(t3));
  93. var t4 = new Timestamped<int>(42, new DateTimeOffset());
  94. Assert.IsTrue(ti.Equals(t4));
  95. Assert.IsTrue(((object)ti).Equals(t4));
  96. }
  97. [TestMethod]
  98. public void TimeStamped_GetHashCode()
  99. {
  100. var ti = new Timestamped<string>(null, new DateTimeOffset());
  101. Assert.IsTrue(ti.GetHashCode() != 0);
  102. Assert.AreEqual(ti.GetHashCode(), ti.GetHashCode());
  103. var t2 = new Timestamped<string>("", new DateTimeOffset());
  104. Assert.AreNotEqual(ti.GetHashCode(), t2.GetHashCode());
  105. }
  106. [TestMethod]
  107. public void TimeStamped_EqualsOperators()
  108. {
  109. var o = new DateTimeOffset();
  110. var ti = new Timestamped<int>(42, o);
  111. var t2 = new Timestamped<int>(43, o);
  112. Assert.IsFalse(ti == t2);
  113. Assert.IsFalse(t2 == ti);
  114. Assert.IsTrue(ti != t2);
  115. Assert.IsTrue(t2 != ti);
  116. var t3 = new Timestamped<int>(42, o.AddDays(1));
  117. Assert.IsFalse(ti == t3);
  118. Assert.IsFalse(t3 == ti);
  119. Assert.IsTrue(ti != t3);
  120. Assert.IsTrue(t3 != ti);
  121. var t4 = new Timestamped<int>(42, o);
  122. Assert.IsTrue(ti == t4);
  123. Assert.IsTrue(t4 == ti);
  124. Assert.IsFalse(ti != t4);
  125. Assert.IsFalse(t4 != ti);
  126. }
  127. [TestMethod]
  128. public void TimeStamped_ToString()
  129. {
  130. var o = new DateTimeOffset();
  131. var ti = new Timestamped<int>(42, o);
  132. Assert.IsTrue(ti.ToString().Contains(42.ToString()));
  133. Assert.IsTrue(ti.ToString().Contains(o.ToString()));
  134. }
  135. }
  136. }