Mercurial > repos > IBBoard.WarFoundry.API.Tests
view API/Factories/Xml/SingleXmlObjectLoader.cs @ 212:325943cb1db0
Re #379: Fix validation of requirements to check for unit
* Create common base class for requirement testing with helper methods
* Rework unit adding tests in UnitRequiresNoMoreThanNOfUnitTypeRequirementTest to new structure
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sun, 26 Feb 2012 15:20:48 +0000 |
parents | ae2f1db8290c |
children |
line wrap: on
line source
// This file (SingleXmlObjectLoader.cs) is a part of the IBBoard.WarFoundry.API.Tests project and is copyright 2009 IBBoard // // The file and the library/program it is in are licensed and distributed, without warranty, under the GNU Affero GPL license, either version 3 of the License or (at your option) any later version. Please see COPYING for more information and the full license. using System; using System.IO; using System.Xml; using IBBoard.WarFoundry.API.Objects; namespace IBBoard.WarFoundry.API.Factories.Xml { /// <summary> /// A helper class that loads a known XML file to the known type to centralise common testing code in one method /// </summary> public class SingleXmlObjectLoader { public static Race LoadRaceFromXML(WarFoundryXmlFactory factory, FileInfo file) { Stream stream = file.OpenRead(); try { return factory.GetRaceFactory().CreateRace(CreateDocumentElementFromStream(stream)); } finally { if (stream != null) { stream.Close(); } } } public static XmlElement CreateDocumentElementFromFile(string filePath) { return CreateDocumentElementFromFile(new FileInfo(filePath)); } public static XmlElement CreateDocumentElementFromFile(FileInfo file) { return CreateDocumentElementFromStream(file.OpenRead()); } private static XmlElement CreateDocumentElementFromStream(Stream stream) { return WarFoundryXmlFactoryUtils.CreateXmlDocumentFromStream(stream).DocumentElement; } public static GameSystem LoadGameSystemFromXML(WarFoundryXmlFactory factory, FileInfo file) { Stream stream = file.OpenRead(); try { return factory.GetSystemFactory().CreateSystemFromElement(null, CreateDocumentElementFromStream(stream)); } finally { if (stream !=null) { stream.Close(); } } } } }