public void ShouldAddXmlBaseAttributeToRootElement()
        {
            var formatter = new ShopFormatter(new ShopBuilder(new Uri("http://restbucks.com:8080/shop")).Build());
            var xml = new XmlOutput(formatter.CreateXml());

            Assert.AreEqual("http://restbucks.com:8080/shop", xml.GetNodeValue("r:shop/@xml:base"));
        }
        public void ShouldCreateShopRootElement()
        {
            var formatter = new ShopFormatter(new ShopBuilder(new Uri("http://localhost")).Build());
            var xml = new XmlOutput(formatter.CreateXml());

            Assert.AreEqual(1, xml.GetNodeCount("r:shop"));
        }
        public void ShouldNotAddXmlBaseAttributeToRootElementIfBaseUriIsNull()
        {
            var formatter = new ShopFormatter(new ShopBuilder(null).Build());
            var xml = new XmlOutput(formatter.CreateXml());

            Assert.IsNull(xml.GetNode("r:shop/@xml:base"));
        }
            public override void OnWriteToStream(Type type, object value, Stream stream, HttpContentHeaders contentHeaders, TransportContext context)
            {
                try
                {
                    var root = new ShopFormatter((Shop) value).CreateXml();

                    using (var writer = XmlWriter.Create(stream, WriterSettings))
                    {
                        root.WriteTo(writer);
                        writer.Flush();
                    }
                }
                catch (Exception ex)
                {
                    Log.Warn(string.Format("Unexpected error writing {0} to response stream.", Value), ex);
                    throw;
                }
            }