public void When_Using_Property_WithXContainerAssignable_should_serialize() { const string XmlElement = "<SomeClass xmlns=\"http://nservicebus.com\"><SomeProperty value=\"Bar\" /></SomeClass>"; const string XmlDocument = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>" + XmlElement; var messageWithXDocument = new MessageWithXDocument { Document = XDocument.Load(new StringReader(XmlDocument)) }; var messageWithXElement = new MessageWithXElement { Document = XElement.Load(new StringReader(XmlElement)) }; MessageWithXDocument resultXDocument; using (var stream = new MemoryStream()) { serializer.Serialize(new object[] { messageWithXDocument }, stream); stream.Position = 0; resultXDocument = this.serializer.Deserialize(stream, new[] { typeof(MessageWithXDocument) }).OfType<MessageWithXDocument>().Single(); } MessageWithXElement resultXElement; using (var stream = new MemoryStream()) { serializer.Serialize(new object[] { messageWithXElement }, stream); stream.Position = 0; resultXElement = this.serializer.Deserialize(stream, new[] { typeof(MessageWithXElement) }).OfType<MessageWithXElement>().Single(); } Assert.AreEqual(messageWithXDocument.Document.ToString(), resultXDocument.Document.ToString()); Assert.AreEqual(messageWithXElement.Document.ToString(), resultXElement.Document.ToString()); }
public void When_Using_Property_WithXContainerAssignable_should_serialize() { const string XmlElement = "<SomeClass xmlns=\"http://nservicebus.com\"><SomeProperty value=\"Bar\" /></SomeClass>"; const string XmlDocument = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>" + XmlElement; var messageWithXDocument = new MessageWithXDocument { Document = XDocument.Load(new StringReader(XmlDocument)) }; var messageWithXElement = new MessageWithXElement { Document = XElement.Load(new StringReader(XmlElement)) }; MessageWithXDocument resultXDocument; using (var stream = new MemoryStream()) { serializer.Serialize(messageWithXDocument, stream); stream.Position = 0; resultXDocument = serializer.Deserialize(stream, new[] { typeof(MessageWithXDocument) }).OfType <MessageWithXDocument>().Single(); } MessageWithXElement resultXElement; using (var stream = new MemoryStream()) { serializer.Serialize(messageWithXElement, stream); stream.Position = 0; resultXElement = serializer.Deserialize(stream, new[] { typeof(MessageWithXElement) }).OfType <MessageWithXElement>().Single(); } Assert.AreEqual(messageWithXDocument.Document.ToString(), resultXDocument.Document.ToString()); Assert.AreEqual(messageWithXElement.Document.ToString(), resultXElement.Document.ToString()); }