1
0

TimeTests.cs 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  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_Create()
  73. {
  74. var o = DateTimeOffset.UtcNow;
  75. var ti = Timestamped.Create(42, o);
  76. Assert.AreEqual(42, ti.Value);
  77. Assert.AreEqual(o, ti.Timestamp);
  78. }
  79. [TestMethod]
  80. public void Timestamped_Ctor_Properties()
  81. {
  82. var o = new DateTimeOffset();
  83. var ti = new Timestamped<int>(42, o);
  84. Assert.AreEqual(42, ti.Value);
  85. Assert.AreEqual(o, ti.Timestamp);
  86. }
  87. [TestMethod]
  88. public void Timestamped_Equals()
  89. {
  90. var ti = new Timestamped<int>(42, new DateTimeOffset());
  91. Assert.IsFalse(ti.Equals("x"));
  92. Assert.IsFalse(((object)ti).Equals("x"));
  93. Assert.IsTrue(ti.Equals(ti));
  94. Assert.IsTrue(((object)ti).Equals(ti));
  95. var t2 = new Timestamped<int>(43, new DateTimeOffset());
  96. Assert.IsFalse(ti.Equals(t2));
  97. Assert.IsFalse(((object)ti).Equals(t2));
  98. var t3 = new Timestamped<int>(42, new DateTimeOffset().AddDays(1));
  99. Assert.IsFalse(ti.Equals(t3));
  100. Assert.IsFalse(((object)ti).Equals(t3));
  101. var t4 = new Timestamped<int>(42, new DateTimeOffset());
  102. Assert.IsTrue(ti.Equals(t4));
  103. Assert.IsTrue(((object)ti).Equals(t4));
  104. }
  105. [TestMethod]
  106. public void Timestamped_GetHashCode()
  107. {
  108. var ti = new Timestamped<string>(null, new DateTimeOffset());
  109. Assert.IsTrue(ti.GetHashCode() != 0);
  110. Assert.AreEqual(ti.GetHashCode(), ti.GetHashCode());
  111. var t2 = new Timestamped<string>("", new DateTimeOffset());
  112. Assert.AreNotEqual(ti.GetHashCode(), t2.GetHashCode());
  113. }
  114. [TestMethod]
  115. public void Timestamped_EqualsOperators()
  116. {
  117. var o = new DateTimeOffset();
  118. var ti = new Timestamped<int>(42, o);
  119. var t2 = new Timestamped<int>(43, o);
  120. Assert.IsFalse(ti == t2);
  121. Assert.IsFalse(t2 == ti);
  122. Assert.IsTrue(ti != t2);
  123. Assert.IsTrue(t2 != ti);
  124. var t3 = new Timestamped<int>(42, o.AddDays(1));
  125. Assert.IsFalse(ti == t3);
  126. Assert.IsFalse(t3 == ti);
  127. Assert.IsTrue(ti != t3);
  128. Assert.IsTrue(t3 != ti);
  129. var t4 = new Timestamped<int>(42, o);
  130. Assert.IsTrue(ti == t4);
  131. Assert.IsTrue(t4 == ti);
  132. Assert.IsFalse(ti != t4);
  133. Assert.IsFalse(t4 != ti);
  134. }
  135. [TestMethod]
  136. public void Timestamped_ToString()
  137. {
  138. var o = new DateTimeOffset();
  139. var ti = new Timestamped<int>(42, o);
  140. Assert.IsTrue(ti.ToString().Contains(42.ToString()));
  141. Assert.IsTrue(ti.ToString().Contains(o.ToString()));
  142. }
  143. }
  144. }