microsoft/TypeAgent
Publicmirrored fromhttps://github.com/microsoft/TypeAgentAvailable
dotnet/typeagent/common.test/DateTimeTests.cs
125lines · modecode
| 1 | // Copyright (c) Microsoft Corporation. |
| 2 | // Licensed under the MIT License. |
| 3 | |
| 4 | |
| 5 | using TypeAgent.KnowPro; |
| 6 | |
| 7 | namespace common.test; |
| 8 | public class DateTimeTests |
| 9 | { |
| 10 | [Fact] |
| 11 | public void DateTimeNotNullOffsetTests() |
| 12 | { |
| 13 | TypeAgent.KnowPro.DateTime dt = new TypeAgent.KnowPro.DateTime(); |
| 14 | |
| 15 | dt.Date = new TypeAgent.KnowPro.DateVal() |
| 16 | { |
| 17 | Day = 1, |
| 18 | Month = 5, |
| 19 | Year = 1941 |
| 20 | }; |
| 21 | |
| 22 | dt.Time = new TypeAgent.KnowPro.TimeVal() |
| 23 | { |
| 24 | Hour = 2, |
| 25 | Minute = 5, |
| 26 | Seconds = 59 |
| 27 | }; |
| 28 | |
| 29 | DateTimeOffset offset = dt.ToDateTimeOffset(); |
| 30 | Assert.Equal(1, offset.Day); |
| 31 | Assert.Equal(5, offset.Month); |
| 32 | Assert.Equal(1941, offset.Year); |
| 33 | Assert.Equal(2, offset.Hour); |
| 34 | Assert.Equal(5, offset.Minute); |
| 35 | Assert.Equal(59, offset.Second); |
| 36 | |
| 37 | DateTimeOffset startDate = dt.ToStartDate(); |
| 38 | Assert.Equal(1, startDate.Day); |
| 39 | Assert.Equal(5, startDate.Month); |
| 40 | Assert.Equal(1941, startDate.Year); |
| 41 | Assert.Equal(2, startDate.Hour); |
| 42 | Assert.Equal(5, startDate.Minute); |
| 43 | Assert.Equal(59, startDate.Second); |
| 44 | |
| 45 | DateTimeOffset stopDate = dt.ToStopDate(); |
| 46 | Assert.Equal(1, stopDate.Day); |
| 47 | Assert.Equal(5, stopDate.Month); |
| 48 | Assert.Equal(1941, stopDate.Year); |
| 49 | Assert.Equal(2, stopDate.Hour); |
| 50 | Assert.Equal(5, stopDate.Minute); |
| 51 | Assert.Equal(59, stopDate.Second); |
| 52 | } |
| 53 | |
| 54 | [Fact] |
| 55 | public void DateTimeNullOffsetTests() |
| 56 | { |
| 57 | TypeAgent.KnowPro.DateTime dt = new TypeAgent.KnowPro.DateTime(); |
| 58 | |
| 59 | dt.Date = new TypeAgent.KnowPro.DateVal() |
| 60 | { |
| 61 | Day = 1, |
| 62 | Month = 5, |
| 63 | Year = 1941 |
| 64 | }; |
| 65 | |
| 66 | DateTimeOffset offset = dt.ToDateTimeOffset(); |
| 67 | Assert.Equal(1, offset.Day); |
| 68 | Assert.Equal(5, offset.Month); |
| 69 | Assert.Equal(1941, offset.Year); |
| 70 | Assert.Equal(0, offset.Hour); |
| 71 | Assert.Equal(0, offset.Minute); |
| 72 | Assert.Equal(0, offset.Second); |
| 73 | |
| 74 | DateTimeOffset startDate = dt.ToStartDate(); |
| 75 | Assert.Equal(1, startDate.Day); |
| 76 | Assert.Equal(5, startDate.Month); |
| 77 | Assert.Equal(1941, startDate.Year); |
| 78 | Assert.Equal(0, startDate.Hour); |
| 79 | Assert.Equal(0, startDate.Minute); |
| 80 | Assert.Equal(0, startDate.Second); |
| 81 | |
| 82 | DateTimeOffset stopDate = dt.ToStopDate(); |
| 83 | Assert.Equal(1, stopDate.Day); |
| 84 | Assert.Equal(5, stopDate.Month); |
| 85 | Assert.Equal(1941, stopDate.Year); |
| 86 | Assert.Equal(23, stopDate.Hour); |
| 87 | Assert.Equal(59, stopDate.Minute); |
| 88 | Assert.Equal(59, stopDate.Second); |
| 89 | Assert.Equal(999, stopDate.Millisecond); |
| 90 | } |
| 91 | |
| 92 | [Fact] |
| 93 | public void DateTimeRangeTests() |
| 94 | { |
| 95 | DateTimeRange dtr = new DateTimeRange() |
| 96 | { |
| 97 | StartDate = new TypeAgent.KnowPro.DateTime() |
| 98 | { |
| 99 | Date = new TypeAgent.KnowPro.DateVal() |
| 100 | { |
| 101 | Day = 1, |
| 102 | Month = 1, |
| 103 | Year = 1900 |
| 104 | |
| 105 | } |
| 106 | }, |
| 107 | StopDate = new TypeAgent.KnowPro.DateTime() |
| 108 | { |
| 109 | Date = new TypeAgent.KnowPro.DateVal() |
| 110 | { |
| 111 | Day = 1, |
| 112 | Month = 1, |
| 113 | Year = 1900 |
| 114 | |
| 115 | } |
| 116 | }, |
| 117 | }; |
| 118 | |
| 119 | DateRange range = dtr.ToDateRange(); |
| 120 | |
| 121 | Assert.Equal(range.Start.Day, dtr.StartDate.Date.Day); |
| 122 | Assert.Equal(range.Start.Month, dtr.StartDate.Date.Month); |
| 123 | Assert.Equal(range.Start.Year, dtr.StartDate.Date.Year); |
| 124 | } |
| 125 | } |