public void Serialize() { var serializer = new XmlSerializer(typeof(SubscribeRequestMessageBody)); var message = new SubscribeRequestMessageBody(); // Supply mock Delivery var delivery = new Mock <Delivery>(MockBehavior.Strict); delivery.As <IXmlSerializable>().Setup(item => item.WriteXml(It.IsAny <XmlWriter>())); message.Delivery = delivery.Object; message.EndTo = EndpointAddressAugust2004.FromEndpointAddress(new EndpointAddress("http://tempuri.org/endTo")); // Supply mock Expires var expires = new Mock <Expires>(MockBehavior.Strict); expires.As <IXmlSerializable>().Setup(item => item.WriteXml(It.IsAny <XmlWriter>())); message.Expires = expires.Object; message.Filter = new XPathMessageFilter(@"/foo"); XElement xml; using (var stream = new MemoryStream()) { serializer.Serialize(stream, message); stream.Position = 0; xml = XElement.Load(stream); } var areEqual = XNode.DeepEquals(XElement.Parse("<wse:Subscribe xmlns:wse='http://schemas.xmlsoap.org/ws/2004/08/eventing'><wse:EndTo><Address xmlns='http://schemas.xmlsoap.org/ws/2004/08/addressing'>http://tempuri.org/endTo</Address></wse:EndTo><wse:Filter>/foo</wse:Filter></wse:Subscribe>"), xml.FirstNode); Assert.IsTrue(areEqual); }
public void AcquireSchemaShouldLoadSchemas() { var schemas = new XmlSchemaSet(); var qName = SubscribeRequestMessageBody.AcquireSchema(schemas); Assert.That(qName.Name, Is.EqualTo("SubscribeType")); Assert.That(qName.Namespace, Is.EqualTo(Constants.WsEventing.Namespace)); Assert.That(schemas.Count, Is.EqualTo(3)); Assert.That(schemas.Schemas().Cast <XmlSchema>().Select(schema => schema.TargetNamespace), Is.EquivalentTo(new[] { "http://www.w3.org/XML/1998/namespace", Constants.WsAddressing.Namespace, Constants.WsEventing.Namespace })); }