Mercurial > repos > IBDev-IBBoard.WarFoundry.API.Tests
view API/Factories/Xml/SingleXmlObjectLoader.cs @ 42:d4f6e9ac981e
Re #152: Test and fix extensibility of current schemas
* Test system and army files
* Test multiple unknown children in racex file
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sat, 13 Mar 2010 20:50:31 +0000 |
parents | 82cd08385bfe |
children | 97ea355f9564 |
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().CreateRaceFromElement(null, CreateDocumentElementFromStream (stream)); } finally { if (stream !=null) { stream.Close(); } } } 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(); } } } } }