public void ShouldAddFormsAsChildrenOfShopElement() { var shop = new ShopBuilder(new Uri("http://localhost")) .AddForm(new Form("request-for-quote", new Uri("/quotes", UriKind.Relative), "post", RestbucksMediaType.Value, new Uri("http://schemas.restbucks.com/shop"))) .AddForm(new Form("order", new Uri("/orders", UriKind.Relative), "put", RestbucksMediaType.Value, new ShopBuilder(new Uri("http://localhost")) .Build())) .Build(); var output = new XmlOutput(new ShopFormatter(shop).CreateXml()); Assert.AreEqual(2, output.GetNodeCount("r:shop/x:model")); Assert.AreEqual("http://schemas.restbucks.com/shop", output.GetNodeValue("r:shop/x:model[1]/@schema")); Assert.AreEqual("request-for-quote", output.GetNodeValue("r:shop/x:model[1]/@id")); Assert.AreEqual("/quotes", output.GetNodeValue("r:shop/x:model[1]/x:submission/@resource")); Assert.AreEqual("post", output.GetNodeValue("r:shop/x:model[1]/x:submission/@method")); Assert.AreEqual(RestbucksMediaType.Value, output.GetNodeValue("r:shop/x:model[1]/x:submission/@mediatype")); Assert.AreEqual(string.Empty, output.GetNodeValue("r:shop/x:model[1]/x:instance")); Assert.IsNull(output.GetNode("r:shop/x:model[2]/@schema")); Assert.AreEqual("order", output.GetNodeValue("r:shop/x:model[2]/@id")); Assert.AreEqual("/orders", output.GetNodeValue("r:shop/x:model[2]/x:submission/@resource")); Assert.AreEqual("put", output.GetNodeValue("r:shop/x:model[2]/x:submission/@method")); Assert.AreEqual(RestbucksMediaType.Value, output.GetNodeValue("r:shop/x:model[2]/x:submission/@mediatype")); Assert.AreEqual(string.Empty, output.GetNodeValue("r:shop/x:model[2]/x:instance/r:shop")); }
public void ShouldAddItemElementsAsChildrenOfItems() { var shop = new ShopBuilder(new Uri("http://localhost/")) .AddItem(new Item("item1", new Amount("g", 250))) .AddItem(new Item("item2", new Amount("g", 500), new Cost("GBP", 5.50))) .Build(); var xml = new XmlOutput(new ShopFormatter(shop).CreateXml()); Assert.AreEqual(2, xml.GetNodeCount("r:shop/r:items/r:item")); Assert.AreEqual("item1", xml.GetNodeValue("r:shop/r:items/r:item[1]/r:description")); Assert.AreEqual("g", xml.GetNodeValue("r:shop/r:items/r:item[1]/r:amount/@measure")); Assert.AreEqual("250", xml.GetNodeValue("r:shop/r:items/r:item[1]/r:amount")); Assert.IsNull(xml.GetNode("r:shop/r:items/r:item[1]/r:price")); Assert.AreEqual("item2", xml.GetNodeValue("r:shop/r:items/r:item[2]/r:description")); Assert.AreEqual("g", xml.GetNodeValue("r:shop/r:items/r:item[2]/r:amount/@measure")); Assert.AreEqual("500", xml.GetNodeValue("r:shop/r:items/r:item[2]/r:amount")); Assert.AreEqual("GBP", xml.GetNodeValue("r:shop/r:items/r:item[2]/r:price/@currency")); Assert.AreEqual("5.50", xml.GetNodeValue("r:shop/r:items/r:item[2]/r:price")); }
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 void ShouldNotAddItemsElementIfThereAreNoItemsInShop() { var shop = new ShopBuilder(new Uri("http://localhost")).Build(); var xml = new XmlOutput(new ShopFormatter(shop).CreateXml()); Assert.IsNull(xml.GetNode("r:shop/r:items")); }