@@ -640,7 +640,42 @@ public void Can_Deserialize_Mixture_Of_Empty_Elements_With_Attributes_And_Popula
640
640
Assert . Null ( output . Id ) ;
641
641
Assert . Null ( output . StartDate ) ;
642
642
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
+ }
644
679
645
680
private static string CreateUnderscoresXml ( )
646
681
{
@@ -934,5 +969,6 @@ private static string CreateXmlWithAttributesAndNullValuesAndPopulatedValues()
934
969
935
970
return doc . ToString ( ) ;
936
971
}
972
+
937
973
}
938
974
}
0 commit comments