TimeZoneInfo.AdjustmentRuleTest.cs 4.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. using System;
  2. using NUnit.Framework;
  3. #if NET_2_0
  4. namespace MonoTests.System
  5. {
  6. public class TimeZoneInfo_AdjustmentRuleTest
  7. {
  8. [TestFixture]
  9. public class CreateAdjustmentRuleException
  10. {
  11. [Test]
  12. [ExpectedException (typeof (ArgumentException))]
  13. public void DateTimeKindNotUnspecified ()
  14. {
  15. DateTime dateStart = new DateTime (2007,01,01, 0,0,0,DateTimeKind.Utc);
  16. DateTime dateEnd = new DateTime (2008,01,01);
  17. TimeZoneInfo.TransitionTime daylightTransitionStart = TimeZoneInfo.TransitionTime.CreateFixedDateRule (new DateTime (1,1,1,2,0,0), 03, 11);
  18. TimeZoneInfo.TransitionTime daylightTransitionEnd = TimeZoneInfo.TransitionTime.CreateFixedDateRule (new DateTime (1,1,1,2,0,0), 10, 11);
  19. TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule (dateStart, dateEnd, new TimeSpan (1,0,0), daylightTransitionStart, daylightTransitionEnd);
  20. }
  21. [Test]
  22. [ExpectedException (typeof (ArgumentException))]
  23. public void TransitionEndEqualStart ()
  24. {
  25. DateTime dateStart = new DateTime (2007,01,01);
  26. DateTime dateEnd = new DateTime (2008,01,01);
  27. TimeZoneInfo.TransitionTime daylightTransition = TimeZoneInfo.TransitionTime.CreateFixedDateRule (new DateTime (1,1,1,2,0,0), 03, 11);
  28. TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule (dateStart, dateEnd, new TimeSpan (1,0,0), daylightTransition, daylightTransition);
  29. }
  30. [Test]
  31. [ExpectedException (typeof (ArgumentException))]
  32. public void DateIncludesTimeOfDay ()
  33. {
  34. DateTime dateStart = new DateTime (2007,01,01, 0,1,0);
  35. DateTime dateEnd = new DateTime (2008,01,01);
  36. TimeZoneInfo.TransitionTime daylightTransitionStart = TimeZoneInfo.TransitionTime.CreateFixedDateRule (new DateTime (1,1,1,2,0,0), 03, 11);
  37. TimeZoneInfo.TransitionTime daylightTransitionEnd = TimeZoneInfo.TransitionTime.CreateFixedDateRule (new DateTime (1,1,1,2,0,0), 10, 11);
  38. TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule (dateStart, dateEnd, new TimeSpan (1,0,0), daylightTransitionStart, daylightTransitionEnd);
  39. }
  40. [Test]
  41. public void DatesMaxMinValid ()
  42. {
  43. try {
  44. TimeZoneInfo.TransitionTime daylightTransitionStart = TimeZoneInfo.TransitionTime.CreateFixedDateRule (new DateTime (1,1,1,2,0,0), 03, 11);
  45. TimeZoneInfo.TransitionTime daylightTransitionEnd = TimeZoneInfo.TransitionTime.CreateFixedDateRule (new DateTime (1,1,1,2,0,0), 10, 11);
  46. TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule (DateTime.MinValue.Date, DateTime.MaxValue.Date, new TimeSpan (1,0,0), daylightTransitionStart, daylightTransitionEnd);
  47. } catch {
  48. Assert.Fail ("DateTime.MinValue and MaxValue are not valid...");
  49. }
  50. }
  51. [Test]
  52. [ExpectedException (typeof (ArgumentOutOfRangeException))]
  53. public void EndBeforeStart ()
  54. {
  55. DateTime dateStart = new DateTime (2007,01,01);
  56. DateTime dateEnd = new DateTime (2006,01,01);
  57. TimeZoneInfo.TransitionTime daylightTransitionStart = TimeZoneInfo.TransitionTime.CreateFixedDateRule (new DateTime (1,1,1,2,0,0), 03, 11);
  58. TimeZoneInfo.TransitionTime daylightTransitionEnd = TimeZoneInfo.TransitionTime.CreateFixedDateRule (new DateTime (1,1,1,2,0,0), 10, 11);
  59. TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule (dateStart, dateEnd, new TimeSpan (1,0,0), daylightTransitionStart, daylightTransitionEnd);
  60. }
  61. [Test]
  62. [ExpectedException (typeof (ArgumentOutOfRangeException))]
  63. public void DeltaOutOfRange ()
  64. {
  65. DateTime dateStart = new DateTime (2007,01,01);
  66. DateTime dateEnd = new DateTime (2008,01,01);
  67. TimeZoneInfo.TransitionTime daylightTransitionStart = TimeZoneInfo.TransitionTime.CreateFixedDateRule (new DateTime (1,1,1,2,0,0), 03, 11);
  68. TimeZoneInfo.TransitionTime daylightTransitionEnd = TimeZoneInfo.TransitionTime.CreateFixedDateRule (new DateTime (1,1,1,2,0,0), 10, 11);
  69. TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule (dateStart, dateEnd, new TimeSpan (14,1,0), daylightTransitionStart, daylightTransitionEnd);
  70. }
  71. [Test]
  72. [ExpectedException (typeof (ArgumentOutOfRangeException))]
  73. public void DeltaNotInSeconds ()
  74. {
  75. DateTime dateStart = new DateTime (2007,01,01);
  76. DateTime dateEnd = new DateTime (2008,01,01);
  77. TimeZoneInfo.TransitionTime daylightTransitionStart = TimeZoneInfo.TransitionTime.CreateFixedDateRule (new DateTime (1,1,1,2,0,0), 03, 11);
  78. TimeZoneInfo.TransitionTime daylightTransitionEnd = TimeZoneInfo.TransitionTime.CreateFixedDateRule (new DateTime (1,1,1,2,0,0), 10, 11);
  79. TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule (dateStart, dateEnd, new TimeSpan (55), daylightTransitionStart, daylightTransitionEnd);
  80. }
  81. }
  82. }
  83. }
  84. #endif