@@ -659,6 +659,67 @@ public void Can_Deserialize_DateTimeOffset()
659
659
Assert . AreEqual ( nullableDateTimeOffsetWithValue , payload . NullableDateTimeOffsetWithValue ) ;
660
660
}
661
661
662
+ [ Test ]
663
+ public void Can_Deserialize_ElementNamedValue ( )
664
+ {
665
+ XDocument doc = new XDocument ( ) ;
666
+ XElement root = new XElement ( "ValueCollection" ) ;
667
+
668
+ string valueName = "First moon landing events" ;
669
+ root . Add ( new XElement ( "Value" , valueName ) ) ;
670
+
671
+ var xmlCollection = new XElement ( "Values" ) ;
672
+
673
+ var first = new XElement ( "Value" ) ;
674
+ first . Add ( new XAttribute ( "Timestamp" , new DateTime ( 1969 , 7 , 20 , 20 , 18 , 00 , DateTimeKind . Utc ) ) ) ;
675
+ xmlCollection . Add ( first ) ;
676
+
677
+ var second = new XElement ( "Value" ) ;
678
+ second . Add ( new XAttribute ( "Timestamp" , new DateTime ( 1969 , 7 , 21 , 2 , 56 , 15 , DateTimeKind . Utc ) ) ) ;
679
+ xmlCollection . Add ( second ) ;
680
+
681
+ root . Add ( xmlCollection ) ;
682
+ doc . Add ( root ) ;
683
+
684
+ RestResponse response = new RestResponse { Content = doc . ToString ( ) } ;
685
+ XmlDeserializer d = new XmlDeserializer ( ) ;
686
+ ValueCollectionForXml valueCollection = d . Deserialize < ValueCollectionForXml > ( response ) ;
687
+
688
+ Assert . AreEqual ( valueName , valueCollection . Value ) ;
689
+ Assert . AreEqual ( 2 , valueCollection . Values . Count ) ;
690
+ Assert . AreEqual ( new DateTime ( 1969 , 7 , 20 , 20 , 18 , 00 , DateTimeKind . Utc ) , valueCollection . Values . First ( ) . Timestamp . ToUniversalTime ( ) ) ;
691
+ }
692
+
693
+ [ Test ]
694
+ public void Can_Deserialize_AttributeNamedValue ( )
695
+ {
696
+ XDocument doc = new XDocument ( ) ;
697
+ XElement root = new XElement ( "ValueCollection" ) ;
698
+
699
+ var xmlCollection = new XElement ( "Values" ) ;
700
+
701
+ var first = new XElement ( "Value" ) ;
702
+ first . Add ( new XAttribute ( "Timestamp" , new DateTime ( 1969 , 7 , 20 , 20 , 18 , 00 , DateTimeKind . Utc ) ) ) ;
703
+ first . Add ( new XAttribute ( "Value" , "Eagle landed" ) ) ;
704
+
705
+ xmlCollection . Add ( first ) ;
706
+
707
+ var second = new XElement ( "Value" ) ;
708
+ second . Add ( new XAttribute ( "Timestamp" , new DateTime ( 1969 , 7 , 21 , 2 , 56 , 15 , DateTimeKind . Utc ) ) ) ;
709
+ second . Add ( new XAttribute ( "Value" , "First step" ) ) ;
710
+ xmlCollection . Add ( second ) ;
711
+
712
+ root . Add ( xmlCollection ) ;
713
+ doc . Add ( root ) ;
714
+
715
+ RestResponse response = new RestResponse { Content = doc . ToString ( ) } ;
716
+ XmlDeserializer d = new XmlDeserializer ( ) ;
717
+ ValueCollectionForXml valueCollection = d . Deserialize < ValueCollectionForXml > ( response ) ;
718
+
719
+ Assert . AreEqual ( 2 , valueCollection . Values . Count ) ;
720
+ Assert . AreEqual ( "Eagle landed" , valueCollection . Values . First ( ) . Value ) ;
721
+ }
722
+
662
723
private static string CreateUnderscoresXml ( )
663
724
{
664
725
XDocument doc = new XDocument ( ) ;
0 commit comments