view WarFoundryLoaderTest.cs @ 7:209c2e9b8b20

Re #44 - Fix WarFoundry API tests * Update .csproj to reference new SharpZipLib library * Copy test data to output dir on build * Make Mock files reference data files in "testdata" folder as file names
author IBBoard <dev@ibboard.co.uk>
date Sat, 14 Mar 2009 16:41:57 +0000
parents 4222cfa99c78
children f96169484ba5
line wrap: on
line source

// This file (WarFoundryLoaderTest.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 under the GNU LGPL license, either version 3 of the License or (at your option) any later version. Please see COPYING.LGPL for more information and the full license.

using System;
using System.IO;
using NUnit.Framework;
using IBBoard.WarFoundry.API.Objects;

namespace IBBoard.WarFoundry.API.Factories
{
	[TestFixture()]
	public class WarFoundryLoaderTest
	{
		private AbstractNativeWarFoundryFactory factory;
				
		[Test()]
		public void TestLoadWithoutFactoriesCompletesWithoutError()
		{
			WarFoundryLoader.GetDefault().LoadFiles();
		}
		
		[Test()]
		public void TestLoadingSystemCompletesWithoutError()
		{
			WarFoundryLoader loader = GetSystemLoader();
			DirectoryInfo dir = new DirectoryInfo(".");
			loader.RegisterFactory(GetFactory());
			loader.AddLoadDirectory(dir);
			loader.LoadFiles();
			Assert.Greater(loader.GetGameSystems().Length, 0);
			loader.RemoveLoadDirectory(dir);
			loader.UnregisterFactory(GetFactory());
		}
				
		private AbstractNativeWarFoundryFactory GetFactory()
		{
			if (factory == null)
			{
				factory = new MockFactory();
			}
			
			return factory;
		}
		
		private WarFoundryLoader GetSystemLoader()
		{
			return new FixedFileWarFoundryLoader(new MockSystemZipFile());
		}
		
		private WarFoundryLoader GetRaceLoader()
		{
			return new FixedFileWarFoundryLoader(new MockRaceZipFile());
		}
	}
}