diff API/Factories/Xml/WarFoundryXmlRaceFactoryTest.cs @ 35:4302e6b2c5c1

Re #228: Crash with missing abilityID * Update tests to match new refactored classes * Add expected message to missing game system error test * Re-implement missing ability test
author IBBoard <dev@ibboard.co.uk>
date Thu, 24 Dec 2009 19:46:30 +0000
parents 03a8ab5e90d6
children 82cd08385bfe
line wrap: on
line diff
--- a/API/Factories/Xml/WarFoundryXmlRaceFactoryTest.cs	Thu Dec 24 14:55:35 2009 +0000
+++ b/API/Factories/Xml/WarFoundryXmlRaceFactoryTest.cs	Thu Dec 24 19:46:30 2009 +0000
@@ -8,6 +8,7 @@
 using System.Xml;
 using NUnit.Framework;
 using IBBoard.WarFoundry.API.Objects;
+using IBBoard.WarFoundry.API.Objects.Mock;
 using IBBoard.IO;
 
 namespace IBBoard.WarFoundry.API.Factories.Xml
@@ -18,20 +19,29 @@
 	public class WarFoundryXmlRaceFactoryTest
 	{
 		[Test()]
-		[ExpectedException(typeof(FileLoadException))]
+		[ExpectedException(typeof(InvalidFileException), ExpectedMessage="Ability for Empire General with ID leaderOfMen did not exist in race definition")]
 		public void TestCompleteLoadingOnRaceWithMissingAbilityIdErrors ()
 		{
-			ICollection<IWarFoundryObject> objs = WarFoundryXmlFactory.GetFactory().CreateObjectsFromFile(new FileInfo("testdata/race-with-non-existant-ability.race"));
-			Assert.AreEqual(1, objs.Count);
-			IEnumerator<IWarFoundryObject> enumerator = objs.GetEnumerator();
-			enumerator.Reset();
-			enumerator.MoveNext();
-			Race race = (Race)enumerator.Current;
-			Category[] cats = race.Categories;
+			try
+			{
+				WarFoundryLoader.SetDefault(new FixedGameSystemWarFoundryLoader(new MockGameSystem()));
+				WarFoundryLoader.GetDefault().LoadFiles();
+				ICollection<IWarFoundryObject> objs = WarFoundryXmlFactory.GetFactory().CreateObjectsFromFile(new FileInfo("testdata/race-with-non-existant-ability.race"));
+				Assert.AreEqual(1, objs.Count);
+				IEnumerator<IWarFoundryObject> enumerator = objs.GetEnumerator();
+				enumerator.Reset();
+				enumerator.MoveNext();
+				Race race = (Race)enumerator.Current;
+				Category[] cats = race.Categories;
+			}
+			finally
+			{
+				WarFoundryLoader.SetDefault(null);
+			}
 		}
 		
 		[Test()]
-		[ExpectedException(typeof(InvalidFileException))]
+		[ExpectedException(typeof(InvalidFileException), ExpectedMessage="Referenced game system, 'nonexistant-system', did not exist")]
 		public void TestCompleteLoadingOnRaceWithMissingGameSystemErrors ()
 		{
 			ICollection<IWarFoundryObject> objs = WarFoundryXmlFactory.GetFactory().CreateObjectsFromFile(new FileInfo("testdata/race-with-non-existant-game-system.race"));