public void FromXML(XElement xml) { this.UUID = (string) xml.Attribute("uuid"); XElement itemsElement = xml.Element("menus"); if (itemsElement != null) { this.Menus = new ObservableCollection<Menu>(); foreach (XElement itemElement in itemsElement.Elements()) { var mi = new Menu(); mi.FromXML(itemElement); this.Menus.Add(mi); } } }
public void Menu_FromXML_ValidObject() { var mi = new Menu(); string xmlIn = "<menu uid=\"1\" name=\"alacarte\" currency_symbol=\"EUR\">\r\n <menu_description>desc</menu_description>\r\n <menu_groups>\r\n <menu_group uid=\"1\" name=\"myname\">\r\n <menu_group_description>desc</menu_group_description>\r\n <menu_items>\r\n <menu_item uid=\"1\">\r\n <menu_item_name>item1</menu_item_name>\r\n <menu_item_description>desc1</menu_item_description>\r\n <menu_item_price>0</menu_item_price>\r\n </menu_item>\r\n <menu_item uid=\"2\">\r\n <menu_item_name>item2</menu_item_name>\r\n <menu_item_description>desc2</menu_item_description>\r\n <menu_item_price>0</menu_item_price>\r\n </menu_item>\r\n </menu_items>\r\n </menu_group>\r\n <menu_group uid=\"2\" name=\"myname\">\r\n <menu_group_description>desc</menu_group_description>\r\n <menu_items>\r\n <menu_item uid=\"1\">\r\n <menu_item_name>item1</menu_item_name>\r\n <menu_item_description>desc1</menu_item_description>\r\n <menu_item_price>0</menu_item_price>\r\n </menu_item>\r\n <menu_item uid=\"2\">\r\n <menu_item_name>item2</menu_item_name>\r\n <menu_item_description>desc2</menu_item_description>\r\n <menu_item_price>0</menu_item_price>\r\n </menu_item>\r\n </menu_items>\r\n </menu_group>\r\n </menu_groups>\r\n</menu>"; XElement xmlElem = XElement.Load(new StringReader(xmlIn)); mi.FromXML(xmlElem); Assert.AreEqual("alacarte", mi.Name); Assert.AreEqual("desc", mi.Description); Assert.AreEqual("EUR", mi.Currency); Assert.AreEqual("1", mi.UID); Assert.AreEqual(2, mi.Groups.Count); foreach (MenuGroup menuGroup in mi.Groups) { Assert.AreEqual(2, menuGroup.Items.Count); } }