public void ConvertToXml_MapsCorrectly() { //Arrange var effectRequirementMapper = new EffectRequirementMapper(); var effectRequirement = new EffectRequirement("name") { Tags = "tags" }; //Act var xml = effectRequirementMapper.Convert(effectRequirement); //Assert Assert.IsInstanceOfType(xml, typeof(entity_classesEntity_classEffect_groupTriggered_effectRequirement)); Assert.AreEqual("name", xml.name); Assert.AreEqual("tags", xml.tags); }
public void Init(string filename) { using ( var reader = new CsvReader( new StreamReader(new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)))) { String[] toks; var col = new Dictionary <string, int>(); for (int i = 0; i < reader.Columns.Length; ++i) { col.Add(reader.Columns[i], i); } Type type = typeof(RequirementFormula); while ((toks = reader.ReadRow()) != null) { if (toks[0].Length <= 0) { continue; } uint index = uint.Parse(toks[col["Id"]]); EffectRequirementContainer container; if (!dict.TryGetValue(index, out container)) { container = new EffectRequirementContainer { Id = index }; dict.Add(index, container); } //string name = "Game.Logic.EffectRequirements." + toks[col["Method"]]; EffectRequirement req = new EffectRequirement(); var parms = new string[toks.Length - 2]; for (int i = 2; i < toks.Length; ++i) { if (toks[i].Contains("=")) { parms[i - 2] = toks[i].Split('=')[1]; } else { parms[i - 2] = toks[i]; } } req.Parms = parms; req.Method = type.GetMethod(toks[col["Method"]]); req.Description = toks[col["Description"]].Trim(); req.WebsiteDescription = toks[col["Website Description"]].Trim(); if (req.Method == null) { throw new Exception(string.Format("Could not find effect requirement method {0}", toks[col["Method"]])); } container.Add(req); } } }