public void TestViewPlayerParseMechanics() { string xml = @"<roar tick=""125555206993""> <admin> <view_player status=""ok""> <attribute ikey=""id"" value=""2059428086"" type=""special""/> <attribute ikey=""xp"" value=""0"" type=""special""/> <attribute ikey=""level"" value=""1"" type=""special""/> <attribute ikey=""facebook_uid"" value=""0"" type=""special""/> <attribute ikey=""name"" value=""foo"" type=""special""/> <attribute ikey=""attack"" value=""10"" type=""core"" label=""Attack""/> <attribute ikey=""defence"" value=""10"" type=""core"" label=""Core Defence""/> <attribute ikey=""hit"" value=""10"" type=""core"" label=""Hit Power""/> <attribute ikey=""avoid"" value=""10"" type=""core"" label=""avoid""/> <attribute ikey=""health"" value=""100"" type=""resource"" max=""123"" min=""0"" regen_every=""1000"" label=""Health""/> <attribute ikey=""energy"" value=""20"" type=""resource"" max=""123"" min=""0"" regen_every=""1000"" label=""Energy""/> <attribute ikey=""stamina"" value=""5"" type=""resource"" max=""123"" min=""0"" regen_every=""1000"" label=""Stamina""/> <attribute ikey=""profile_points"" value=""0"" type=""currency"" label=""Monkey Power Points""/> <attribute ikey=""cash"" value=""100"" type=""currency"" lable=""cash""/> <attribute ikey=""premium_currency"" value=""5"" type=""currency"" label=""Bear Dollars""/> <items> <item id=""1001"" ikey=""item_ikey"" count=""1"" label=""A Label"" type=""thing"" description=""A thing"" consumable=""false"" sellable=""true"" equipped=""false""> <stats> <equip_attribute ikey=""health_max"" value=""100""/> <grant_stat ikey=""cash"" value=""100""/> <grant_stat ikey=""energy"" value=""-5""/> </stats> <properties> <property ikey=""size"" value=""3""/> </properties> <tags> <tag value=""weapon""/> </tags> </item> </items> </view_player> </admin> </roar>" ; System.Xml.XmlElement nn = RoarExtensions.CreateXmlElement(xml); Mockery mockery = new Mockery(); Roar.DataConversion.IXCRMParser ixcrm_parser = mockery.NewMock <Roar.DataConversion.IXCRMParser>(); Roar.DataConversion.Responses.Admin.ViewPlayer view_player_parser = new Roar.DataConversion.Responses.Admin.ViewPlayer(); view_player_parser.ixcrm_parser = ixcrm_parser; List <Roar.DomainObjects.ItemStat> stat_list = new List <Roar.DomainObjects.ItemStat>(); List <Roar.DomainObjects.Modifier> modifier_list = new List <Roar.DomainObjects.Modifier>(); List <string> tag_list = new List <string>(); Expect.Once.On(ixcrm_parser).Method("ParseItemStatList").With(nn.SelectSingleNode("./admin/view_player/items/item/stats")).Will(Return.Value(stat_list)); Expect.Once.On(ixcrm_parser).Method("ParseModifierList").With(nn.SelectSingleNode("./amdin/view_player/items/item/price")).Will(Return.Value(modifier_list)); Expect.Once.On(ixcrm_parser).Method("ParseTagList").With(nn.SelectSingleNode("./admin/view_player/items/item/tags")).Will(Return.Value(tag_list)); ViewPlayerResponse response = view_player_parser.Build(nn); mockery.VerifyAllExpectationsHaveBeenMet(); Assert.AreEqual(response.player.id, "2059428086"); Assert.AreEqual(response.player.name, "foo"); Assert.AreEqual(response.player.xp.value, 0); Assert.AreEqual(response.player.level, 1); Assert.AreEqual(response.player.attributes.Count, 11); Assert.AreEqual(response.player.attributes["facebook_uid"].value, "0"); Assert.AreEqual(response.player.attributes["facebook_uid"].type, "special"); Assert.AreEqual(response.player.attributes["hit"].label, "Hit Power"); Assert.AreEqual(response.items.Count, 1); Assert.AreEqual(response.items[0].stats, stat_list); Assert.AreEqual(response.items[0].price, modifier_list); Assert.AreEqual(response.items[0].tags, tag_list); }
public void TestViewPlayerXmlGetAttributes() { string xml = @"<roar tick=""125555206993""> <admin> <view_player status=""ok""> <attribute ikey=""id"" value=""2059428086"" type=""special""/> <attribute ikey=""xp"" value=""0"" type=""special""/> <attribute ikey=""level"" value=""1"" type=""special""/> <attribute ikey=""facebook_uid"" value=""0"" type=""special""/> <attribute ikey=""name"" value=""foo"" type=""special""/> <attribute ikey=""attack"" value=""10"" type=""core"" label=""Attack""/> <attribute ikey=""defence"" value=""10"" type=""core"" label=""Core Defence""/> <attribute ikey=""hit"" value=""10"" type=""core"" label=""Hit Power""/> <attribute ikey=""avoid"" value=""10"" type=""core"" label=""avoid""/> <attribute ikey=""health"" value=""100"" type=""resource"" max=""123"" min=""0"" regen_every=""1000"" label=""Health""/> <attribute ikey=""energy"" value=""20"" type=""resource"" max=""123"" min=""0"" regen_every=""1000"" label=""Energy""/> <attribute ikey=""stamina"" value=""5"" type=""resource"" max=""123"" min=""0"" regen_every=""1000"" label=""Stamina""/> <attribute ikey=""profile_points"" value=""0"" type=""currency"" label=""Monkey Power Points""/> <attribute ikey=""cash"" value=""100"" type=""currency"" lable=""cash""/> <attribute ikey=""premium_currency"" value=""5"" type=""currency"" label=""Bear Dollars""/> <items> <item id=""1001"" ikey=""item_ikey"" count=""1"" label=""A Label"" type=""thing"" description=""A thing"" consumable=""false"" sellable=""true"" equipped=""false""> <stats> <equip_attribute ikey=""health_max"" value=""100""/> <grant_stat ikey=""cash"" value=""100""/> <grant_stat ikey=""energy"" value=""-5""/> </stats> <properties> <property ikey=""size"" value=""3""/> </properties> <tags> <tag value=""weapon""/> </tags> </item> </items> </view_player> </admin> </roar>" ; System.Xml.XmlElement nn = RoarExtensions.CreateXmlElement(xml); Roar.DataConversion.Responses.Admin.ViewPlayer view_player_parser = new Roar.DataConversion.Responses.Admin.ViewPlayer(); ViewPlayerResponse response = view_player_parser.Build(nn); Assert.AreEqual(response.player.id, "2059428086"); Assert.AreEqual(response.player.name, "foo"); Assert.AreEqual(response.player.xp.value, 0); Assert.AreEqual(response.player.level, 1); Assert.AreEqual(response.player.attributes.Count, 11); Assert.AreEqual(response.player.attributes["facebook_uid"].value, "0"); Assert.AreEqual(response.player.attributes["facebook_uid"].type, "special"); Assert.AreEqual(response.player.attributes["hit"].label, "Hit Power"); Assert.AreEqual(response.items.Count, 1); Assert.AreEqual(response.items[0].stats.Count, 3); Assert.AreEqual(response.items[0].stats[0].ikey, "health_max"); Assert.AreEqual(response.items[0].stats[1].ikey, "cash"); Assert.AreEqual(response.items[0].stats[2].ikey, "energy"); Assert.AreEqual(response.items[0].properties.Count, 1); Assert.AreEqual(response.items[0].properties[0].ikey, "size"); Assert.AreEqual(response.items[0].tags.Count, 1); Assert.AreEqual(response.items[0].tags[0], "weapon"); }