private NecroDancerData ReadNecroDancerData(XElement necrodancerEl) { var necroDancerData = new NecroDancerData(); foreach (var necrodancerElChild in necrodancerEl.Elements()) { var necrodancerElChildName = necrodancerElChild.Name.ToString(); switch (necrodancerElChildName) { case "items": var items = ReadItems(necrodancerElChild); necroDancerData.Items.AddRange(items); break; case "enemies": var enemies = ReadEnemies(necrodancerElChild); necroDancerData.Enemies.AddRange(enemies); break; case "characters": var characters = ReadCharacters(necrodancerElChild, necroDancerData.Items); necroDancerData.Characters.AddRange(characters); break; case "modes": var modes = ReadModes(necrodancerElChild); necroDancerData.Modes.AddRange(modes); break; default: log.Debug($"Unknown necrodancer element: '{necrodancerElChildName}'."); break; } } return(necroDancerData); }
public void ReturnsNecroDancerData() { // Arrange -> Act var necroDancerData = new NecroDancerData(); // Assert Assert.IsAssignableFrom <NecroDancerData>(necroDancerData); }
public void GetsModes() { // Arrange var necroDancerData = new NecroDancerData(); // Act var modes = necroDancerData.Modes; // Assert Assert.IsAssignableFrom <List <IMode> >(modes); }
public void GetsCharacters() { // Arrange var necroDancerData = new NecroDancerData(); // Act var characters = necroDancerData.Characters; // Assert Assert.IsAssignableFrom <List <Character> >(characters); }
public void GetsEnemies() { // Arrange var necroDancerData = new NecroDancerData(); // Act var enemies = necroDancerData.Enemies; // Assert Assert.IsAssignableFrom <List <Enemy> >(enemies); }
public void GetsItems() { // Arrange var necroDancerData = new NecroDancerData(); // Act var items = necroDancerData.Items; // Assert Assert.IsAssignableFrom <List <Item> >(items); }
public void NecroDancerDataIsNull_ThrowsArgumentNullException() { // Arrange var serializer = new NecroDancerDataSerializer(); var stream = Stream.Null; NecroDancerData necroDancerData = null; // Act -> Assert Assert.Throws <ArgumentNullException>(() => { serializer.Serialize(stream, necroDancerData); }); }
public void NecroDancerDataIsNull_ThrowsArgumentNullException() { // Arrange var stream = Stream.Null; var writer = new NecroDancerDataWriter(stream); NecroDancerData necroDancerData = null; // Act -> Assert Assert.Throws <ArgumentNullException>(() => { writer.Write(necroDancerData); }); }
public void Write(NecroDancerData necroDancerData) { if (necroDancerData == null) { throw new ArgumentNullException(nameof(necroDancerData)); } var doc = new XDocument(); var necrodancerEl = new XElement("necrodancer"); var itemsEl = WriteItems(necroDancerData.Items); necrodancerEl.Add(itemsEl); var enemiesEl = WriteEnemies(necroDancerData.Enemies); necrodancerEl.Add(enemiesEl); if (necroDancerData.Characters.Any()) { var charactersEl = WriteCharacters(necroDancerData.Characters); necrodancerEl.Add(charactersEl); } if (necroDancerData.Modes.Any()) { var modesEl = WriteModes(necroDancerData.Modes); necrodancerEl.Add(modesEl); } doc.Add(necrodancerEl); var settings = new XmlWriterSettings { IndentChars = " ", Indent = true, OmitXmlDeclaration = true, }; using (var xw = XmlWriter.Create(stream, settings)) { doc.Save(xw); } }
/// <summary> /// /// </summary> /// <param name="stream"></param> /// <param name="necroDancerData"></param> public void Serialize(Stream stream, NecroDancerData necroDancerData) { var writer = new NecroDancerDataWriter(stream); writer.Write(necroDancerData); }