Example #1
0
        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);
        }
Example #2
0
        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 }));
        }