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 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); }