public void TestTasksListParseMechanics() { string xml = @"<roar tick=""135577684654""> <tasks> <list status=""ok""> <task ikey=""dungeon_crawl""> <label>Dungeon crawl</label> <description>Go into the pits</description> <location>Australia</location> <tags> <tag value=""protect""/> <tag value=""monsters""/> </tags> <costs> <item_cost ikey=""mariner"" number_required=""3"" ok=""false"" reason=""requires mariner(3)""/> <stat_cost type=""currency"" ikey=""premium_currency"" value=""477"" ok=""true""/> </costs> <rewards> <grant_stat type=""currency"" ikey=""premium_currency"" value=""453""/> <grant_xp value=""234""/> </rewards> <mastery level=""2"" progress=""5""/> <requires> <item_requirement ikey=""talisman"" number_required=""2"" ok=""false"" reason=""requires talisman(2)""/> </requires> </task> </list> </tasks> </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.Tasks.List list_parser = new Roar.DataConversion.Responses.Tasks.List(); list_parser.ixcrm_parser = ixcrm_parser; Roar.DomainObjects.Task task_data = new Roar.DomainObjects.Task(); Expect.Once.On(ixcrm_parser).Method("ParseCostList").With(nn.SelectSingleNode("./tasks/list/task/costs")).Will(Return.Value(task_data.costs)); Expect.Once.On(ixcrm_parser).Method("ParseModifierList").With(nn.SelectSingleNode("./tasks/list/task/rewards")).Will(Return.Value(task_data.rewards)); Expect.Once.On(ixcrm_parser).Method("ParseRequirementList").With(nn.SelectSingleNode("./tasks/list/task/requires")).Will(Return.Value(task_data.requirements)); Expect.Once.On(ixcrm_parser).Method("ParseTagList").With(nn.SelectSingleNode("./tasks/list/task/tags")).Will(Return.Value(task_data.tags)); ListResponse response = list_parser.Build(nn); mockery.VerifyAllExpectationsHaveBeenMet(); Assert.AreEqual(response.tasks.Count, 1); Assert.AreEqual(response.tasks[0].costs.Count, 0); Assert.AreEqual(response.tasks[0].rewards.Count, 0); Assert.AreEqual(response.tasks[0].requirements.Count, 0); Assert.AreEqual(response.tasks[0].tags.Count, 0); Assert.AreEqual(response.tasks[0].costs, task_data.costs); Assert.AreEqual(response.tasks[0].rewards, task_data.rewards); Assert.AreEqual(response.tasks[0].requirements, task_data.requirements); Assert.AreEqual(response.tasks[0].tags, task_data.tags); }
public void TestWhatCanIAcceptParseMechanics() { string xml = @"<roar tick=""128555554651""> <mail> <what_can_i_accept status=""ok""> <package type=""item"" id=""15850999291750564699"" message=""Enjoy the beans!"" sender_id=""123123"" sender_name=""John""> <item id=""15850999291750564699"" ikey=""magic_beans"" count=""1"" label=""Magic Beans"" type=""custom_type"" description=""Grow a beanstalk!"" consumable=""true""/> <tag value=""test_tag""/> <tag value=""next tag""/> <modifiers> <grant_item ikey=""item_ikey_1""/> </modifiers> </package> </what_can_i_accept> </mail> </roar>" ; System.Xml.XmlElement nn = RoarExtensions.CreateXmlElement(xml); Roar.DataConversion.Responses.Mail.WhatCanIAccept what_can_i_accept_parser = new Roar.DataConversion.Responses.Mail.WhatCanIAccept(); Mockery mockery = new Mockery(); Roar.DataConversion.IXCRMParser ixcrm_parser = mockery.NewMock <Roar.DataConversion.IXCRMParser>(); what_can_i_accept_parser.ixcrm_parser = ixcrm_parser; IList <string> tag_list = new List <string>(); IList <Roar.DomainObjects.Modifier> modifier_list = new List <Roar.DomainObjects.Modifier>(); IList <Roar.DomainObjects.ItemStat> item_stat_list = new List <Roar.DomainObjects.ItemStat>(); IList <Roar.DomainObjects.Modifier> item_price_list = new List <Roar.DomainObjects.Modifier>(); IList <string> item_tag_list = new List <string>(); Expect.Once.On(ixcrm_parser).Method("ParseItemStatList").With(nn.SelectSingleNode("./mail/what_can_i_accept/package/item/stats")).Will(Return.Value(item_stat_list)); Expect.Once.On(ixcrm_parser).Method("ParseModifierList").With(nn.SelectSingleNode("./mail/what_can_i_accept/package/item/price")).Will(Return.Value(item_price_list)); Expect.Once.On(ixcrm_parser).Method("ParseTagList").With(nn.SelectSingleNode("./mail/what_can_i_accept/package/item/tags")).Will(Return.Value(item_tag_list)); Expect.Once.On(ixcrm_parser).Method("ParseTagList").With(nn.SelectSingleNode("./mail/what_can_i_accept/package")).Will(Return.Value(tag_list)); Expect.Once.On(ixcrm_parser).Method("ParseModifierList").With(nn.SelectSingleNode("./mail/what_can_i_accept/package/modifiers")).Will(Return.Value(modifier_list)); WhatCanIAcceptResponse response = what_can_i_accept_parser.Build(nn); mockery.VerifyAllExpectationsHaveBeenMet(); Assert.AreEqual(response.packages.Count, 1); Assert.AreEqual(response.packages[0].id, "15850999291750564699"); Assert.AreEqual(response.packages[0].type, "item"); Assert.AreEqual(response.packages[0].sender_id, "123123"); Assert.AreEqual(response.packages[0].sender_name, "John"); Assert.AreEqual(response.packages[0].message, "Enjoy the beans!"); Assert.AreEqual(response.packages[0].items.Count, 1); Assert.AreEqual(response.packages[0].tags.Count, 0); Assert.AreEqual(response.packages[0].modifiers.Count, 0); Assert.AreEqual(response.packages[0].items[0].stats, item_stat_list); Assert.AreEqual(response.packages[0].items[0].price, item_price_list); Assert.AreEqual(response.packages[0].tags, tag_list); Assert.AreEqual(response.packages[0].modifiers, modifier_list); }
public void TestItemsViewXmlParseMechanics() { string xml = @"<roar tick=""135536803344""> <items> <view status=""ok""> <item> <stats> <regen_stat_limited ikey=""premium_currency"" value=""345"" repeat=""12"" times_used=""4""/> </stats> <properties> <property ikey=""mariner"" value=""543""/> </properties> <tags> <tag value=""magicitem""/> </tags> <price> <grant_item ikey=""talisman""/> </price> </item> </view> </items> </roar>" ; System.Xml.XmlElement nn = RoarExtensions.CreateXmlElement(xml); Mockery mockery = new Mockery(); Roar.DataConversion.IXCRMParser ixcrm_parser = mockery.NewMock <Roar.DataConversion.IXCRMParser>(); List <Roar.DomainObjects.ItemStat> item_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>(); Roar.DataConversion.Responses.Items.View items_view_response_parser = new Roar.DataConversion.Responses.Items.View(); items_view_response_parser.ixcrm_parser = ixcrm_parser; System.Xml.XmlNode stat_node = nn.SelectSingleNode("./items/view/item/stats"); Expect.Once.On(ixcrm_parser).Method("ParseItemStatList").With(stat_node).Will(Return.Value(item_stat_list)); System.Xml.XmlNode modifiers_node = nn.SelectSingleNode("./items/view/item/price"); Expect.Once.On(ixcrm_parser).Method("ParseModifierList").With(modifiers_node).Will(Return.Value(modifier_list)); System.Xml.XmlNode tag_node = nn.SelectSingleNode("./items/view/item/tags"); Expect.Once.On(ixcrm_parser).Method("ParseTagList").With(tag_node).Will(Return.Value(tag_list)); ViewResponse response = items_view_response_parser.Build(nn); mockery.VerifyAllExpectationsHaveBeenMet(); Assert.IsNotNull(response.items); Assert.AreEqual(response.items.Count, 1); Assert.AreEqual(response.items[0].stats, item_stat_list); Assert.AreEqual(response.items[0].price, modifier_list); Assert.AreEqual(response.items[0].tags, tag_list); }
public void TestChromeWebStoreListParseMechanics() { string xml = @"<roar tick=""130695522924""> <chrome_web_store> <list> <shopitem blah=""???"" ikey=""token"" label=""Token"" description=""Chrome Token"" price=""23"" jwt=""????""> <modifiers> <grant_item ikey=""item_ikey_1""/> </modifiers> <tags> <tag value=""a_tag""/> <tag value=""another_tag""/> </tags> </shopitem> </list> </chrome_web_store> </roar>" ; System.Xml.XmlElement nn = RoarExtensions.CreateXmlElement(xml); Roar.DataConversion.Responses.ChromeWebStore.List list_parser = new Roar.DataConversion.Responses.ChromeWebStore.List(); Mockery mockery = new Mockery(); Roar.DataConversion.IXCRMParser ixcrm_parser = mockery.NewMock <Roar.DataConversion.IXCRMParser>(); list_parser.ixcrm_parser = ixcrm_parser; IList <Roar.DomainObjects.Modifier> modifier_list = new List <Roar.DomainObjects.Modifier>(); IList <string> tag_list = new List <string>(); Expect.Once.On(ixcrm_parser).Method("ParseModifierList").With(nn.SelectSingleNode("./chrome_web_store/list/shopitem/modifiers")).Will(Return.Value(modifier_list)); Expect.Once.On(ixcrm_parser).Method("ParseTagList").With(nn.SelectSingleNode("./chrome_web_store/list/shopitem/tags")).Will(Return.Value(tag_list)); ListResponse response = list_parser.Build(nn); mockery.VerifyAllExpectationsHaveBeenMet(); Assert.IsNotNull(response.shop_items); Assert.AreEqual(response.shop_items.Count, 1); Assert.AreEqual(response.shop_items[0].ikey, "token"); Assert.AreEqual(response.shop_items[0].label, "Token"); Assert.AreEqual(response.shop_items[0].description, "Chrome Token"); Assert.AreEqual(response.shop_items[0].price, "23"); Assert.AreEqual(response.shop_items[0].jwt, "????"); Assert.AreEqual(response.shop_items[0].modifiers, modifier_list); Assert.AreEqual(response.shop_items[0].tags, tag_list); }
public void TestItemsListXmlGetAttributes() { string xml = @"<roar tick=""135546049121""> <items> <list status=""ok""> <item id=""1039149107"" ikey=""talisman"" count=""1"" label=""Talisman"" type=""item"" description=""protects from evil"" consumable=""false"" sellable=""false"" equipped=""true""> <tags> <tag value=""magicitem""/> </tags> </item> </list> </items> </roar>" ; System.Xml.XmlElement nn = RoarExtensions.CreateXmlElement(xml); Mockery mockery = new Mockery(); Roar.DataConversion.IXCRMParser ixcrm_parser = mockery.NewMock <Roar.DataConversion.IXCRMParser>(); List <Roar.DomainObjects.ItemStat> item_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>(); Roar.DataConversion.Responses.Items.List list_parser = new Roar.DataConversion.Responses.Items.List(); list_parser.ixcrm_parser = ixcrm_parser; System.Xml.XmlNode stat_node = nn.SelectSingleNode("./items/list/item/stats"); Expect.Once.On(ixcrm_parser).Method("ParseItemStatList").With(stat_node).Will(Return.Value(item_stat_list)); System.Xml.XmlNode modifiers_node = nn.SelectSingleNode("./items/list/item/price"); Expect.Once.On(ixcrm_parser).Method("ParseModifierList").With(modifiers_node).Will(Return.Value(modifier_list)); System.Xml.XmlNode tag_node = nn.SelectSingleNode("./items/list/item/tags"); Expect.Once.On(ixcrm_parser).Method("ParseTagList").With(tag_node).Will(Return.Value(tag_list)); ListResponse response = list_parser.Build(nn); mockery.VerifyAllExpectationsHaveBeenMet(); Assert.IsNotNull(response.items); Assert.AreEqual(response.items.Count, 1); Assert.IsTrue(response.items[0].equipped); Assert.AreEqual(response.items[0].stats, item_stat_list); Assert.AreEqual(response.items[0].price, modifier_list); Assert.AreEqual(response.items[0].tags, tag_list); }
public void TestAppstoreShopListParseMechanics() { string xml = @"<roar tick=""130695522924""> <appstore> <shop_list> <shopitem product_identifier=""someidentifier"" label=""A label""> <modifiers> <grant_item ikey=""item_ikey_1""/> <grant_stat ikey=""item_stat"" type=""some type"" value=""7""/> </modifiers> </shopitem> </shop_list> </appstore> </roar>" ; System.Xml.XmlElement nn = RoarExtensions.CreateXmlElement(xml); Roar.DataConversion.Responses.Appstore.ShopList shop_list_parser = new Roar.DataConversion.Responses.Appstore.ShopList(); Mockery mockery = new Mockery(); Roar.DataConversion.IXCRMParser ixcrm_parser = mockery.NewMock <Roar.DataConversion.IXCRMParser>(); shop_list_parser.ixcrm_parser = ixcrm_parser; IList <Roar.DomainObjects.Modifier> modifier_list = new List <Roar.DomainObjects.Modifier>(); Expect.Once.On(ixcrm_parser).Method("ParseModifierList").With(nn.SelectSingleNode("./appstore/shop_list/shopitem/modifiers")).Will(Return.Value(modifier_list)); ShopListResponse response = shop_list_parser.Build(nn); mockery.VerifyAllExpectationsHaveBeenMet(); Assert.IsNotNull(response); Assert.AreEqual(response.shop_list.Count, 1); Assert.AreEqual(response.shop_list[0].product_identifier, "someidentifier"); Assert.AreEqual(response.shop_list[0].label, "A label"); Assert.AreEqual(response.shop_list[0].modifiers, modifier_list); }
public void TestParseFacebookShopListResponse() { string xml = @"<roar tick=""130695522924""> <facebook>\ <shop_list> <fbshopitem ikey=""shop_item_ikey1"" description=""Blah Blah"" label=""label"" price=""2"" product_url=""http://foo.bar"" image_url=""http://foo.bar/baz.png"" > <modifiers> <grant_item ikey=""item_ikey_1""/> </modifiers> </fbshopitem> <fbshopitem ikey=""shop_item_ikey2"" description=""Blah Boo"" label=""item2"" price=""4"" product_url=""ABC"" image_url=""..."" > <modifiers> <grant_item ikey=""item_ikey_2""/> </modifiers> </fbshopitem> </shop_list> </facebook> </roar>" ; System.Xml.XmlElement nn = RoarExtensions.CreateXmlElement(xml); Assert.IsNotNull(nn); Assert.AreEqual(2, nn.SelectNodes("./facebook/shop_list/fbshopitem").Count); Mockery mockery = new Mockery(); Roar.DataConversion.IXCRMParser ixcrm_parser = mockery.NewMock <Roar.DataConversion.IXCRMParser>(); List <Roar.DomainObjects.Modifier> modifier_list = new List <Roar.DomainObjects.Modifier>(); List <Roar.DomainObjects.Modifier> modifier_list1 = new List <Roar.DomainObjects.Modifier>(); System.Xml.XmlNode modifier_node0 = nn.SelectSingleNode("./facebook/shop_list/fbshopitem[1]/modifiers"); Expect.Once.On(ixcrm_parser).Method("ParseModifierList").With(modifier_node0).Will(Return.Value(modifier_list)); System.Xml.XmlNode modifier_node1 = nn.SelectSingleNode("./facebook/shop_list/fbshopitem[2]/modifiers"); Expect.Once.On(ixcrm_parser).Method("ParseModifierList").With(modifier_node1).Will(Return.Value(modifier_list1)); Roar.DataConversion.Responses.Facebook.ShopList shoplist_response_parser = new Roar.DataConversion.Responses.Facebook.ShopList(); shoplist_response_parser.ixcrm_parser = ixcrm_parser; Roar.WebObjects.Facebook.ShopListResponse response = shoplist_response_parser.Build(nn); Assert.IsNotNull(response); Assert.AreEqual(2, response.shop_list.Count); Roar.DomainObjects.FacebookShopEntry e0 = response.shop_list[0]; Assert.AreEqual("shop_item_ikey1", e0.ikey); Assert.AreEqual("Blah Blah", e0.description); Assert.AreEqual("label", e0.label); Assert.AreEqual("2", e0.price); Assert.AreEqual("http://foo.bar", e0.product_url); Assert.AreEqual("http://foo.bar/baz.png", e0.image_url); Assert.AreSame(modifier_list, e0.modifiers); Roar.DomainObjects.FacebookShopEntry e1 = response.shop_list[1]; Assert.AreEqual("shop_item_ikey2", e1.ikey); Assert.AreEqual("Blah Boo", e1.description); Assert.AreEqual("item2", e1.label); Assert.AreEqual("4", e1.price); Assert.AreEqual("ABC", e1.product_url); Assert.AreEqual("...", e1.image_url); Assert.AreSame(modifier_list1, e1.modifiers); mockery.VerifyAllExpectationsHaveBeenMet(); }
public void TestItemsSellXmlParseMechanics() { string xml = @"<roar tick=""135572003492""> <items> <sell status=""ok""> <effect> <costs/> <modifiers> <modifier type=""removed_items"" ikey=""talisman"" count=""34""/> <modifier type=""stat_change"" ikey=""premium_currency"" value=""67""/> <modifier type=""stat_change"" ikey=""premium_currency"" value=""9""/> <modifier type=""add_xp"" value=""876""/> <modifier type=""add_xp"" value=""6""/> <modifier type=""add_item"" ikey=""talisman"" item_id=""1458454945""/> <modifier type=""stat_change"" ikey=""premium_currency"" value=""88""/> <modifier type=""add_xp"" value=""66""/> <modifier type=""add_xp"" value=""77""/> </modifiers> </effect> <item id=""275012935"" ikey=""ring"" count=""1"" label=""Ring"" type=""item"" description=""Magic ring for protection and strength"" consumable=""true"" sellable=""true""> <stats> <equip_attribute ikey=""premium_currency"" value=""67""/> <collect_stat ikey=""premium_currency"" value=""45"" every=""600000"" window=""234"" collect_at=""0""/> <regen_stat_limited ikey=""premium_currency"" value=""345"" repeat=""12"" times_used=""0""/> <regen_stat ikey=""premium_currency"" value=""44"" every=""600000""/> <grant_stat ikey=""premium_currency"" value=""566""/> </stats> <properties> <property ikey=""sonda"" value=""extra""/> <property ikey=""mariner"" value=""505""/> </properties> <tags> <tag value=""magic""/> <tag value=""magicitem""/> <tag value=""protection""/> </tags> <price> <remove_items/> <grant_stat type=""currency"" ikey=""premium_currency"" value=""67""/> <grant_stat_range type=""currency"" ikey=""premium_currency"" min=""8"" max=""9""/> <grant_xp value=""876""/> <grant_xp_range min=""6"" max=""7""/> <grant_item ikey=""talisman""/> <random_choice> <choice weight=""67""> <modifier> <grant_stat type=""currency"" ikey=""premium_currency"" value=""88""/> </modifier> <requirement> <true_requirement ok=""true""/> </requirement> </choice> </random_choice> <grant_xp value=""66""/> <if_then_else> <if> <true_requirement ok=""true""/> </if> <then> <grant_xp value=""77""/> </then> <else> <grant_xp value=""88""/> </else> </if_then_else> </price> </item> </sell> </items> <server> <item_lose item_id=""180846839"" item_ikey=""talisman""/> <item_add item_id=""1458454945"" item_ikey=""talisman""/> <item_lose item_id=""275012935"" item_ikey=""ring""/> <update type=""currency"" ikey=""premium_currency"" value=""32987""/> <update type=""xp"" ikey=""xp"" value=""16807""/> <inventory_changed/> </server> </roar>" ; Mockery mockery = new Mockery(); Roar.DataConversion.IXCRMParser ixcrm_parser = mockery.NewMock <Roar.DataConversion.IXCRMParser>(); Roar.DomainObjects.InventoryItem item_data = new Roar.DomainObjects.InventoryItem(); System.Xml.XmlElement nn = RoarExtensions.CreateXmlElement(xml); Roar.DataConversion.Responses.Items.Sell sell_parser = new Roar.DataConversion.Responses.Items.Sell(); sell_parser.ixcrm_parser = ixcrm_parser; Expect.Once.On(ixcrm_parser).Method("ParseItemStatList").With(nn.SelectSingleNode("./items/sell/item/stats")).Will(Return.Value(item_data.stats)); Expect.Once.On(ixcrm_parser).Method("ParseModifierList").With(nn.SelectSingleNode("./items/sell/item/price")).Will(Return.Value(item_data.price)); Expect.Once.On(ixcrm_parser).Method("ParseTagList").With(nn.SelectSingleNode("./items/sell/item/tags")).Will(Return.Value(item_data.tags)); SellResponse response = sell_parser.Build(nn); mockery.VerifyAllExpectationsHaveBeenMet(); Assert.IsNotNull(response.item); Assert.AreEqual(response.item.id, "275012935"); Assert.AreEqual(response.item.ikey, "ring"); Assert.AreEqual(response.item.count, 1); Assert.AreEqual(response.item.label, "Ring"); Assert.AreEqual(response.item.type, "item"); Assert.AreEqual(response.item.description, "Magic ring for protection and strength"); Assert.IsTrue(response.item.consumable); Assert.IsTrue(response.item.sellable); Assert.AreEqual(response.item.stats, item_data.stats); Assert.AreEqual(response.item.price, item_data.price); Assert.AreEqual(response.item.tags, item_data.tags); }
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 TestWhatCanISendParseMechanics() { string xml = @"<roar tick=""12835555872""> <mail> <what_can_i_send status=""ok""> <mailable id=""3467"" type=""gift"" label=""a label""> <requirements> <friends_requirement required=""5"" ok=""false"" reason=""Insufficient friends""/> <level_requirement level=""3"" ok=""true"" reason=""requires level 3""/> </requirements> <costs> <item_cost ikey=""mariner"" number_required=""3"" ok=""false"" reason=""requires mariner(3)""/> <stat_cost type=""currency"" ikey=""premium_currency"" value=""477"" ok=""true""/> </costs> <on_accept> <grant_item ikey=""your_gift_item_ikey""/> </on_accept> <on_give> <grant_xp value=""500""/> </on_give> <tags> <tag value=""tag 1""/> <tag value=""tag 2""/> </tags> </mailable> </what_can_i_send> </mail> </roar>" ; System.Xml.XmlElement nn = RoarExtensions.CreateXmlElement(xml); Roar.DataConversion.Responses.Mail.WhatCanISend what_can_i_send_parser = new Roar.DataConversion.Responses.Mail.WhatCanISend(); Mockery mockery = new Mockery(); Roar.DataConversion.IXCRMParser ixcrm_parser = mockery.NewMock <Roar.DataConversion.IXCRMParser>(); what_can_i_send_parser.ixcrm_parser = ixcrm_parser; IList <Roar.DomainObjects.Requirement> requirement_list = new List <Roar.DomainObjects.Requirement>(); IList <Roar.DomainObjects.Cost> cost_list = new List <Roar.DomainObjects.Cost>(); IList <Roar.DomainObjects.Modifier> accept_list = new List <Roar.DomainObjects.Modifier>(); IList <Roar.DomainObjects.Modifier> give_list = new List <Roar.DomainObjects.Modifier>(); IList <string> tag_list = new List <string>(); Expect.Once.On(ixcrm_parser).Method("ParseRequirementList").With(nn.SelectSingleNode("./mail/what_can_i_send/mailable/requirements")).Will(Return.Value(requirement_list)); Expect.Once.On(ixcrm_parser).Method("ParseCostList").With(nn.SelectSingleNode("./mail/what_can_i_send/mailable/costs")).Will(Return.Value(cost_list)); Expect.Once.On(ixcrm_parser).Method("ParseModifierList").With(nn.SelectSingleNode("./mail/what_can_i_send/mailable/on_accept")).Will(Return.Value(accept_list)); Expect.Once.On(ixcrm_parser).Method("ParseModifierList").With(nn.SelectSingleNode("./mail/what_can_i_send/mailable/on_give")).Will(Return.Value(give_list)); Expect.Once.On(ixcrm_parser).Method("ParseTagList").With(nn.SelectSingleNode("./mail/what_can_i_send/mailable/tags")).Will(Return.Value(tag_list)); Roar.WebObjects.Mail.WhatCanISendResponse response = what_can_i_send_parser.Build(nn); mockery.VerifyAllExpectationsHaveBeenMet(); Assert.IsNotNull(response.mailables); Assert.AreEqual(response.mailables.Count, 1); Assert.AreEqual(response.mailables[0].id, "3467"); Assert.AreEqual(response.mailables[0].type, "gift"); Assert.AreEqual(response.mailables[0].label, "a label"); Assert.AreEqual(response.mailables[0].requirements, requirement_list); Assert.AreEqual(response.mailables[0].costs, cost_list); Assert.AreEqual(response.mailables[0].on_accept, accept_list); Assert.AreEqual(response.mailables[0].on_give, give_list); Assert.AreEqual(response.mailables[0].tags, tag_list); }
public void TestListShopXmlParsesCorrectly_System() { string xml = @"<roar tick=""135562028150""> <shop> <list status=""ok""> <shopitem ikey=""rocket_fuel"" label=""Rocket Fuel"" description=""""> <costs> <stat_cost type=""currency"" ikey=""gamecoins"" value=""10"" ok=""true""/> </costs> <modifiers> <grant_stat type=""currency"" ikey=""rocket_fuel"" value=""100""/> </modifiers> <tags/> </shopitem> <shopitem ikey=""neil_armstrong"" label=""Neil Armstrong"" description=""Best copilot in the world""> <costs> <stat_cost type=""currency"" ikey=""premium_currency"" value=""15"" ok=""false"" reason=""Insufficient Premium Currency""/> </costs> <modifiers> <grant_item ikey=""npc_armstrong""/> </modifiers> <tags> <tag value=""copilot""/> </tags> </shopitem> <shopitem ikey=""starter_space_pack"" label=""Starter Space Pack"" description=""Get going!""> <costs> <stat_cost type=""currency"" ikey=""gamecoins"" value=""20"" ok=""true""/> </costs> <modifiers> <grant_stat type=""currency"" ikey=""rocket_fuel"" value=""30""/> <grant_item ikey=""regular_space_helmet""/> <grant_item ikey=""rocket_ship""/> </modifiers> <tags> <tag value=""pack""/> </tags> </shopitem> </list> </shop> </roar>" ; System.Xml.XmlElement nn = RoarExtensions.CreateXmlElement(xml); Assert.IsNotNull(nn); System.Xml.XmlNode c1 = nn.SelectSingleNode("./shop/list/shopitem[1]/costs"); System.Xml.XmlNode c2 = nn.SelectSingleNode("./shop/list/shopitem[2]/costs"); System.Xml.XmlNode c3 = nn.SelectSingleNode("./shop/list/shopitem[3]/costs"); Assert.IsNotNull(c1); Assert.IsNotNull(c2); Assert.IsNotNull(c3); Assert.AreEqual("gamecoins", (c1.SelectSingleNode("./stat_cost") as System.Xml.XmlElement).GetAttribute("ikey")); Assert.AreEqual("premium_currency", (c2.SelectSingleNode("./stat_cost") as System.Xml.XmlElement).GetAttribute("ikey")); Assert.AreEqual("gamecoins", (c3.SelectSingleNode("./stat_cost") as System.Xml.XmlElement).GetAttribute("ikey")); IList <Roar.DomainObjects.Cost> cl1 = new List <Roar.DomainObjects.Cost>(); IList <Roar.DomainObjects.Cost> cl2 = new List <Roar.DomainObjects.Cost>(); IList <Roar.DomainObjects.Cost> cl3 = new List <Roar.DomainObjects.Cost>(); System.Xml.XmlNode m1 = nn.SelectSingleNode("./shop/list/shopitem[1]/modifiers"); System.Xml.XmlNode m2 = nn.SelectSingleNode("./shop/list/shopitem[2]/modifiers"); System.Xml.XmlNode m3 = nn.SelectSingleNode("./shop/list/shopitem[3]/modifiers"); Assert.IsNotNull(m1); Assert.IsNotNull(m2); Assert.IsNotNull(m3); IList <Roar.DomainObjects.Modifier> ml1 = new List <Roar.DomainObjects.Modifier>(); IList <Roar.DomainObjects.Modifier> ml2 = new List <Roar.DomainObjects.Modifier>(); IList <Roar.DomainObjects.Modifier> ml3 = new List <Roar.DomainObjects.Modifier>(); Mockery mockery = new Mockery(); Roar.DataConversion.IXCRMParser ixcrm_parser = mockery.NewMock <Roar.DataConversion.IXCRMParser>(); Expect.Once.On(ixcrm_parser).Method("ParseCostList").With(new SystemXmlMatcher(c1 as System.Xml.XmlElement)).Will(Return.Value(cl1)); Expect.Once.On(ixcrm_parser).Method("ParseCostList").With(new SystemXmlMatcher(c2 as System.Xml.XmlElement)).Will(Return.Value(cl2)); Expect.Once.On(ixcrm_parser).Method("ParseCostList").With(new SystemXmlMatcher(c3 as System.Xml.XmlElement)).Will(Return.Value(cl3)); Expect.Once.On(ixcrm_parser).Method("ParseModifierList").With(new SystemXmlMatcher(m1 as System.Xml.XmlElement)).Will(Return.Value(ml1)); Expect.Once.On(ixcrm_parser).Method("ParseModifierList").With(new SystemXmlMatcher(m2 as System.Xml.XmlElement)).Will(Return.Value(ml2)); Expect.Once.On(ixcrm_parser).Method("ParseModifierList").With(new SystemXmlMatcher(m3 as System.Xml.XmlElement)).Will(Return.Value(ml3)); Roar.DataConversion.Responses.Shop.List shoplist_response_parser = new Roar.DataConversion.Responses.Shop.List(); shoplist_response_parser.ixcrm_parser = ixcrm_parser; Roar.WebObjects.Shop.ListResponse response = shoplist_response_parser.Build(nn); Assert.IsNotNull(response); mockery.VerifyAllExpectationsHaveBeenMet(); }