Skip to content

Commit 0db7b9c

Browse files
EamonHethertonhaacked
authored andcommitted
Added unit Test for DateTimeOffset XmlDeserialization
1 parent 7b4da75 commit 0db7b9c

File tree

1 file changed

+37
-1
lines changed

1 file changed

+37
-1
lines changed

RestSharp.Tests/XmlTests.cs

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -640,7 +640,42 @@ public void Can_Deserialize_Mixture_Of_Empty_Elements_With_Attributes_And_Popula
640640
Assert.Null(output.Id);
641641
Assert.Null(output.StartDate);
642642
Assert.Equal(new Guid(GuidString), output.UniqueId);
643-
}
643+
}
644+
645+
[Fact]
646+
public void Can_Deserialize_DateTimeOffset()
647+
{
648+
var culture = CultureInfo.InvariantCulture;
649+
var doc = new XDocument(culture);
650+
651+
DateTimeOffset DateTimeOffset = new DateTimeOffset(2013, 02, 08, 9, 18, 22, TimeSpan.FromHours(10));
652+
DateTimeOffset? NullableDateTimeOffsetWithValue = new DateTimeOffset(2013, 02, 08, 9, 18, 23, TimeSpan.FromHours(10));
653+
654+
var root = new XElement("Dates");
655+
root.Add(new XElement("DateTimeOffset", DateTimeOffset));
656+
root.Add(new XElement("NullableDateTimeOffsetWithNull", string.Empty));
657+
root.Add(new XElement("NullableDateTimeOffsetWithValue", NullableDateTimeOffsetWithValue));
658+
659+
doc.Add(root);
660+
661+
var xml = new XmlDeserializer
662+
{
663+
Culture = culture,
664+
};
665+
666+
var response = new RestResponse { Content = doc.ToString() };
667+
668+
var d = new XmlDeserializer()
669+
{
670+
Culture = culture,
671+
};
672+
var payload = d.Deserialize<DateTimeTestStructure>(response);
673+
Assert.Equal(DateTimeOffset, payload.DateTimeOffset);
674+
Assert.Null(payload.NullableDateTimeOffsetWithNull);
675+
676+
Assert.True(payload.NullableDateTimeOffsetWithValue.HasValue);
677+
Assert.Equal(NullableDateTimeOffsetWithValue, payload.NullableDateTimeOffsetWithValue);
678+
}
644679

645680
private static string CreateUnderscoresXml()
646681
{
@@ -934,5 +969,6 @@ private static string CreateXmlWithAttributesAndNullValuesAndPopulatedValues()
934969

935970
return doc.ToString();
936971
}
972+
937973
}
938974
}

0 commit comments

Comments
 (0)