# HG changeset patch # User IBBoard # Date 1299340409 0 # Node ID db6db25921fbb4884aef7bcbe223a5c5321f5a03 # Parent 10da200c7799ecce72a23410f7ea45efbd555714 Re #324: Add saving of Race and System data to files * Add tests for the zip entry name diff -r 10da200c7799 -r db6db25921fb API/Savers/IWarFoundryFileSaverTests.cs --- a/API/Savers/IWarFoundryFileSaverTests.cs Sat Mar 05 15:24:11 2011 +0000 +++ b/API/Savers/IWarFoundryFileSaverTests.cs Sat Mar 05 15:53:29 2011 +0000 @@ -1,9 +1,11 @@ using System; +using System.Collections; +using System.Collections.Generic; using System.IO; using IBBoard.WarFoundry.API.Objects; using IBBoard.WarFoundry.API.Objects.Mock; +using ICSharpCode.SharpZipLib.Zip; using NUnit.Framework; -using ICSharpCode.SharpZipLib.Zip; using NUnit.Framework.SyntaxHelpers; namespace IBBoard.WarFoundry.API.Savers @@ -28,7 +30,7 @@ } } } - + [Test()] public void TestSaverCreatesZipFile() { @@ -47,7 +49,7 @@ } } } - + [Test()] public void TestSaverCreatesSingleEntryForOneObject() { @@ -67,8 +69,36 @@ } } } - + + [Test()] + public void TestSaverCreatesSingleEntryWithCorrectNameForOneObject() + { + string tempFile = Path.GetTempFileName(); + try + { + MockGameSystem obj = new MockGameSystem(); + GetSaver().Save(tempFile, obj); + ZipFile file = new ZipFile(tempFile); + IEnumerator enumerator = file.GetEnumerator(); + enumerator.MoveNext(); + ZipEntry current = (ZipEntry)enumerator.Current; + Assert.That(current.Name, Is.EqualTo(GetEntryName(obj))); + Assert.That(current.Name, Text.EndsWith(GetFileExtensionForType(obj))); + file.Close(); + } + finally + { + if (File.Exists(tempFile)) + { + File.Delete(tempFile); + } + } + } protected abstract IWarFoundryFileSaver GetSaver(); + + protected abstract string GetEntryName(WarFoundryLoadedObject obj); + + protected abstract string GetFileExtensionForType(WarFoundryLoadedObject obj); } } diff -r 10da200c7799 -r db6db25921fb API/Savers/Xml/WarFoundryXmlFileSaverTests.cs --- a/API/Savers/Xml/WarFoundryXmlFileSaverTests.cs Sat Mar 05 15:24:11 2011 +0000 +++ b/API/Savers/Xml/WarFoundryXmlFileSaverTests.cs Sat Mar 05 15:53:29 2011 +0000 @@ -1,6 +1,7 @@ using System; using NUnit.Framework; using System.IO; +using IBBoard.WarFoundry.API.Objects; namespace IBBoard.WarFoundry.API.Savers.Xml { @@ -11,5 +12,15 @@ { return new WarFoundryXmlFileSaver(); } + + protected override string GetEntryName (WarFoundryLoadedObject obj) + { + return obj.ID; + } + + protected override string GetFileExtensionForType (WarFoundryLoadedObject obj) + { + return GetSaver().GetFileExtension(obj); + } } }