diff --git a/YamlDotNet.Test/Serialization/DeserializerTest.cs b/YamlDotNet.Test/Serialization/DeserializerTest.cs index 0657e188..03f6ae98 100644 --- a/YamlDotNet.Test/Serialization/DeserializerTest.cs +++ b/YamlDotNet.Test/Serialization/DeserializerTest.cs @@ -19,6 +19,7 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. +using System; using System.Collections.Generic; using FluentAssertions; using Xunit; @@ -34,6 +35,7 @@ public void Deserialize_YamlWithInterfaceTypeAndMapping_ReturnsModel() { var yaml = @" name: Jack +momentOfBirth: 1983-04-21T20:21:03.0041599Z cars: - name: Mercedes year: 2018 @@ -48,6 +50,13 @@ public void Deserialize_YamlWithInterfaceTypeAndMapping_ReturnsModel() var person = sut.Deserialize(yaml); person.Name.Should().Be("Jack"); + person.MomentOfBirth.Kind.Should().Be(DateTimeKind.Utc); + person.MomentOfBirth.ToUniversalTime().Year.Should().Be(1983); + person.MomentOfBirth.ToUniversalTime().Month.Should().Be(4); + person.MomentOfBirth.ToUniversalTime().Day.Should().Be(21); + person.MomentOfBirth.ToUniversalTime().Hour.Should().Be(20); + person.MomentOfBirth.ToUniversalTime().Minute.Should().Be(21); + person.MomentOfBirth.ToUniversalTime().Second.Should().Be(3); person.Cars.Should().HaveCount(2); person.Cars[0].Name.Should().Be("Mercedes"); person.Cars[0].Spec.Should().BeNull(); @@ -60,6 +69,7 @@ public void Deserialize_YamlWithTwoInterfaceTypesAndMappings_ReturnsModel() { var yaml = @" name: Jack +momentOfBirth: 1983-04-21T20:21:03.0041599Z cars: - name: Mercedes year: 2018 @@ -81,6 +91,13 @@ public void Deserialize_YamlWithTwoInterfaceTypesAndMappings_ReturnsModel() var person = sut.Deserialize(yaml); person.Name.Should().Be("Jack"); + person.MomentOfBirth.Kind.Should().Be(DateTimeKind.Utc); + person.MomentOfBirth.ToUniversalTime().Year.Should().Be(1983); + person.MomentOfBirth.ToUniversalTime().Month.Should().Be(4); + person.MomentOfBirth.ToUniversalTime().Day.Should().Be(21); + person.MomentOfBirth.ToUniversalTime().Hour.Should().Be(20); + person.MomentOfBirth.ToUniversalTime().Minute.Should().Be(21); + person.MomentOfBirth.ToUniversalTime().Second.Should().Be(3); person.Cars.Should().HaveCount(2); person.Cars[0].Name.Should().Be("Mercedes"); person.Cars[0].Spec.EngineType.Should().Be("V6"); @@ -94,6 +111,8 @@ public class Person { public string Name { get; private set; } + public DateTime MomentOfBirth { get; private set; } + public IList Cars { get; private set; } } diff --git a/YamlDotNet/Serialization/NodeDeserializers/ScalarNodeDeserializer.cs b/YamlDotNet/Serialization/NodeDeserializers/ScalarNodeDeserializer.cs index 18f85feb..7de7d5a8 100644 --- a/YamlDotNet/Serialization/NodeDeserializers/ScalarNodeDeserializer.cs +++ b/YamlDotNet/Serialization/NodeDeserializers/ScalarNodeDeserializer.cs @@ -91,7 +91,7 @@ bool INodeDeserializer.Deserialize(IParser parser, Type expectedType, Func