예제 #1
0
        public void Iso8601ToInstantPassedValidValueReturnsCorrectResult(string testValue, Instant expectedValue)
        {
            var result = NodaTimeConverter.Iso8601ToInstant(testValue,
                                                            Iso8601ParseOptions.AllowBeginningOfTime | Iso8601ParseOptions.AllowEndOfTime);

            Assert.That(result, Is.EqualTo(expectedValue));
        }
예제 #2
0
        public void ToOffsetDateTime_AndToDateTimeOffset_ConvertsMaxInstantToMaxDateTimeOffset(Offset offset)
        {
            var offsetDateTime = NodaTimeConverter.ToOffsetDateTime(Instant.MaxValue, offset);
            var dateTimeOffset = NodaTimeConverter.ToDateTimeOffset(offsetDateTime);

            dateTimeOffset.Should().Be(DateTimeOffset.MaxValue);
        }
예제 #3
0
        public void ToDateTimeUtc_ThenToInstant_ReturnsSameValue(Instant expected)
        {
            var dateTime = NodaTimeConverter.ToDateTimeUtc(expected);
            var actual   = NodaTimeConverter.UtcDateTimeToInstant(dateTime);

            Assert.That(actual, Is.EqualTo(expected));
        }
예제 #4
0
        public void UtcDateTimeAllowingUnspecifiedKindToInstant_WithUnspecifiedDateTimeKind_IsTreatedAsUtc()
        {
            var input = new DateTime(2000, 01, 01, 00, 00, 00, DateTimeKind.Unspecified);

            var output = NodaTimeConverter.UtcDateTimeAllowingUnspecifiedKindToInstant(input);

            Assert.That(output.ToDateTimeUtc(), Is.EqualTo(input));
        }
예제 #5
0
        public void OffsetToHours_WithValueInAllowedRange_ConvertsCorrectly(double expectedUtcOffsetInHours, long offsetInTicks)
        {
            var offset = Offset.FromTicks(offsetInTicks);

            var actual = NodaTimeConverter.OffsetToHours(offset);

            actual.ShouldBeEquivalentTo(expectedUtcOffsetInHours);
        }
예제 #6
0
        public void OffsetToHours_WithOffsetGreaterThanAllowedMaximum_Throws()
        {
            var offsetGreaterThanAllowedMaximum = Offset.FromHours(15);

            Action action = () => NodaTimeConverter.OffsetToHours(offsetGreaterThanAllowedMaximum);

            action.ShouldThrow <ArgumentOutOfRangeException>();
        }
예제 #7
0
        public void HoursToOffsetPassedValueGreaterThanMaximumAllowedOffsetThrows()
        {
            const double utcOffsetGreaterThanMaximum = 15.0;

            TestDelegate testDelegate = () => NodaTimeConverter.HoursToOffset(utcOffsetGreaterThanMaximum);

            Assert.That(testDelegate, Throws.TypeOf <ArgumentOutOfRangeException>());
        }
예제 #8
0
        public void ToOffsetDateTime_GivenInstant_ReturnsExpected(Offset offset)
        {
            var time = _fixture.Create <Instant>();

            var offsetDateTime = NodaTimeConverter.ToOffsetDateTime(time, offset);

            offsetDateTime.ToInstant().Should().Be(time);
            offsetDateTime.Offset.Should().Be(offset);
        }
예제 #9
0
        public void ToDateTimeOffset_GivenMaxOffsetDateTime_ReturnsDateTimeOffsetMaxValue()
        {
            var maxOffsetDateTime = NodaTimeConverter.MaxOffsetDateTime;

            var maxDateTimeOffset = NodaTimeConverter.ToDateTimeOffset(maxOffsetDateTime);

            maxDateTimeOffset.DateTime.Should().Be(NodaTimeConverter.MaxDateTimeUtc);
            maxDateTimeOffset.Should().Be(DateTimeOffset.MaxValue);
        }
예제 #10
0
        public void ToDateTimeOffset_GivenMaxDateTimeInstant_WithZeroOffset_Throws()
        {
            var maxDateTimeInstant           = NodaTimeConverter.MaxDateTimeInstant;
            var offsetDateTimeWithMaxInstant = NodaTimeConverter.ToOffsetDateTime(maxDateTimeInstant, Offset.Zero);

            Action toDateTimeOffset = () => NodaTimeConverter.ToDateTimeOffset(offsetDateTimeWithMaxInstant);

            toDateTimeOffset.ShouldThrow <ArgumentOutOfRangeException>();
        }
예제 #11
0
        public void ToDateTimeOffsetUtc_ReturnsExpectedValueWithOffsetZero()
        {
            var expected = new DateTimeOffset(2001, 01, 02, 03, 04, 05, TimeSpan.FromHours(-8));
            var instant  = Instant.FromDateTimeOffset(expected);

            var actual = NodaTimeConverter.InstantToDateTimeOffsetUtc(instant);

            Assert.That(actual, Is.EqualTo(expected));
            Assert.That(actual.Offset, Is.EqualTo(TimeSpan.Zero));
        }
예제 #12
0
        public void ToDateTimeOffset_GivenOffsetDateTime_ReturnsExpected(Offset offset)
        {
            var instant        = _fixture.Create <Instant>();
            var offsetDateTime = instant.WithOffset(offset);

            var dateTimeOffset = NodaTimeConverter.ToDateTimeOffset(offsetDateTime);

            Instant.FromDateTimeOffset(dateTimeOffset).Should().Be(instant);
            Offset.FromTicks(dateTimeOffset.Offset.Ticks).Should().Be(offset);
        }
예제 #13
0
        public void HoursToOffsetPassedValueWithinAllowedRangeReturnsCorrectResult(double testUtcOffset, long expectedResultInTicks)
        {
            var result = NodaTimeConverter.HoursToOffset(testUtcOffset);

            Assert.That(result, Is.EqualTo(Offset.FromTicks(expectedResultInTicks)));
        }
예제 #14
0
 public void ToDateTimeUtc_ConvertsDateTimeCorrectly()
 {
     Assert.That(NodaTimeConverter.ToDateTimeUtc(Instant0101), Is.EqualTo(DateTimeUtc0101));
 }
예제 #15
0
 public void Iso8601ToInstantPassedInvalidValueThrowsArgumentException(string testValue, Iso8601ParseOptions options)
 {
     Assert.That(() => NodaTimeConverter.Iso8601ToInstant(testValue, options), Throws.ArgumentException);
 }
예제 #16
0
        public void UtcDateTimeToInstant_ThrowsIfDateTimeIsNotUtcKind()
        {
            var dateTime = new DateTime(2001, 01, 02);

            Assert.That(() => NodaTimeConverter.UtcDateTimeToInstant(dateTime), Throws.TypeOf <ArgumentException>());
        }
예제 #17
0
        public void ToOffsetDateTime_GivenMaxValue_ReturnsMaxOffsetDateTime(Offset offset)
        {
            var maxOffsetDateTime = NodaTimeConverter.ToOffsetDateTime(Instant.MaxValue, offset);

            maxOffsetDateTime.Should().Be(NodaTimeConverter.MaxOffsetDateTime);
        }
예제 #18
0
        public void ToOffsetDateTime_GivenMinValue_ReturnsOffsetDateTime_WithMinInstantValue(Offset offset)
        {
            var minOffsetDateTime = NodaTimeConverter.ToOffsetDateTime(Instant.MinValue, offset);

            minOffsetDateTime.ToInstant().Should().Be(Instant.MinValue);
        }
예제 #19
0
        public void ToNullableDateTimeUtc_MaxValue_ConvertsToNull()
        {
            var dateTimeUtc = NodaTimeConverter.ToNullableDateTimeUtc(Instant.MaxValue);

            dateTimeUtc.ShouldBeEquivalentTo(null);
        }
예제 #20
0
 public void ToDateTimeUtc_WithValuesOutsideOfRange_Throws(Instant input)
 {
     Assert.That(() => NodaTimeConverter.ToDateTimeUtc(input), Throws.TypeOf <ArgumentOutOfRangeException>());
 }
예제 #21
0
 public void UtcDateTimeToInstant_ConvertsMaxDateTimeUtcToInstantMaxValue()
 {
     Assert.That(NodaTimeConverter.UtcDateTimeToInstant(MaxDateTimeUtc), Is.EqualTo(Instant.MaxValue));
 }
예제 #22
0
 public void ToDateTimeUtc_ConvertsMaxInstantToMaxDateTimeUtc()
 {
     Assert.That(NodaTimeConverter.ToDateTimeUtc(Instant.MaxValue), Is.EqualTo(MaxDateTimeUtc));
 }
예제 #23
0
        public void ToNullableDateTimeUtc_NullInstant_ConvertsToNullDateTime()
        {
            var dateTimeUtc = NodaTimeConverter.ToNullableDateTimeUtc(null);

            dateTimeUtc.ShouldBeEquivalentTo(null);
        }
예제 #24
0
        public void ToNullableDateTimeUtc_ValuesOutsideOfRange_Throws(Instant input)
        {
            Action action = () => NodaTimeConverter.ToNullableDateTimeUtc(input);

            action.ShouldThrow <ArgumentOutOfRangeException>();
        }
예제 #25
0
        public void NullableUtcDateTimeToNullableInstant_GivenNull_ReturnsNull()
        {
            var result = NodaTimeConverter.NullableUtcDateTimeToNullableInstant(null);

            Assert.That(result, Is.Null);
        }
예제 #26
0
        public void ToNullableDateTimeUtc_ConvertToDateTimeCorrectly()
        {
            var dateTimeUtc = NodaTimeConverter.ToNullableDateTimeUtc(Instant0101);

            dateTimeUtc.ShouldBeEquivalentTo(DateTimeUtc0101);
        }
예제 #27
0
        public void NullableUtcDateTimeToDefaultEndOfTimeInstant_WithNull_ReturnsMaxInstant()
        {
            var output = NodaTimeConverter.NullableUtcDateTimeToDefaultEndOfTimeInstant(null);

            Assert.That(output, Is.EqualTo(Instant.MaxValue));
        }