diff API/Factories/Xml/WarFoundryXmlFactoryTests.cs @ 96:3c2c108a2f08

Re #253: Allow multiple data files in a single zip * Fix unit tests by unsubscribing at end of test no-open-ticket
author IBBoard <dev@ibboard.co.uk>
date Sat, 05 Mar 2011 19:53:25 +0000
parents 5d19fee8e9dc
children 7c21ca1482cb
line wrap: on
line diff
--- a/API/Factories/Xml/WarFoundryXmlFactoryTests.cs	Sat Mar 05 15:53:29 2011 +0000
+++ b/API/Factories/Xml/WarFoundryXmlFactoryTests.cs	Sat Mar 05 19:53:25 2011 +0000
@@ -16,26 +16,33 @@
 			EventListeningWarFoundryLoader loader = new EventListeningWarFoundryLoader();
 			WarFoundryLoader.SetDefault(loader);
 			WarFoundryXmlFactory factory = WarFoundryXmlFactory.GetFactory();
-			loader.RegisterFactory(factory);
-			ICollection<IWarFoundryObject> objs = factory.CreateObjectsFromFile(new FileInfo("testdata/multifile-zips/Test.system"));
-			Assert.That(objs, Has.Count(2));
-			int raceCount = 0;
-			int systemCount = 0;
-			
-			foreach (IWarFoundryObject obj in objs)
+			try
 			{
-				if (obj is Race)
+				loader.RegisterFactory(factory);
+				ICollection<IWarFoundryObject> objs = factory.CreateObjectsFromFile(new FileInfo("testdata/multifile-zips/Test.system"));
+				Assert.That(objs, Has.Count(2));
+				int raceCount = 0;
+				int systemCount = 0;
+				
+				foreach (IWarFoundryObject obj in objs)
 				{
-					raceCount++;
+					if (obj is Race)
+					{
+						raceCount++;
+					}
+					else if (obj is GameSystem)
+					{
+						systemCount++;
+					}
 				}
-				else if (obj is GameSystem)
-				{
-					systemCount++;
-				}
+				
+				Assert.That(raceCount, Is.EqualTo(1));
+				Assert.That(systemCount, Is.EqualTo(1));
 			}
-			
-			Assert.That(raceCount, Is.EqualTo(1));
-			Assert.That(systemCount, Is.EqualTo(1));
+			finally
+			{				
+				loader.UnregisterFactory(factory);
+			}
 		}
 			
 		[Test()]
@@ -45,25 +52,32 @@
 			WarFoundryLoader.SetDefault(loader);
 			WarFoundryXmlFactory factory = WarFoundryXmlFactory.GetFactory();
 			loader.RegisterFactory(factory);
-			ICollection<IWarFoundryObject> objs = factory.CreateObjectsFromFile(new FileInfo("testdata/multifile-zips/Test.race"));
-			Assert.That(objs, Has.Count(2));
-			int raceCount = 0;
-			int systemCount = 0;
-			
-			foreach (IWarFoundryObject obj in objs)
+			try
 			{
-				if (obj is Race)
+				ICollection<IWarFoundryObject> objs = factory.CreateObjectsFromFile(new FileInfo("testdata/multifile-zips/Test.race"));
+				Assert.That(objs, Has.Count(2));
+				int raceCount = 0;
+				int systemCount = 0;
+				
+				foreach (IWarFoundryObject obj in objs)
 				{
-					raceCount++;
+					if (obj is Race)
+					{
+						raceCount++;
+					}
+					else if (obj is GameSystem)
+					{
+						systemCount++;
+					}
 				}
-				else if (obj is GameSystem)
-				{
-					systemCount++;
-				}
+				
+				Assert.That(raceCount, Is.EqualTo(1));
+				Assert.That(systemCount, Is.EqualTo(1));
 			}
-			
-			Assert.That(raceCount, Is.EqualTo(1));
-			Assert.That(systemCount, Is.EqualTo(1));
+			finally
+			{				
+				loader.UnregisterFactory(factory);
+			}
 		}
 		
 		[Test()]
@@ -73,25 +87,32 @@
 			WarFoundryLoader.SetDefault(loader);
 			WarFoundryXmlFactory factory = WarFoundryXmlFactory.GetFactory();
 			loader.RegisterFactory(factory);
-			ICollection<IWarFoundryObject> objs = factory.CreateObjectsFromFile(new FileInfo("testdata/multifile-zips/Multipack.system"));
-			Assert.That(objs, Has.Count(4));
-			int raceCount = 0;
-			int systemCount = 0;
-			
-			foreach (IWarFoundryObject obj in objs)
+			try
 			{
-				if (obj is Race)
+				ICollection<IWarFoundryObject> objs = factory.CreateObjectsFromFile(new FileInfo("testdata/multifile-zips/Multipack.system"));
+				Assert.That(objs, Has.Count(4));
+				int raceCount = 0;
+				int systemCount = 0;
+				
+				foreach (IWarFoundryObject obj in objs)
 				{
-					raceCount++;
+					if (obj is Race)
+					{
+						raceCount++;
+					}
+					else if (obj is GameSystem)
+					{
+						systemCount++;
+					}
 				}
-				else if (obj is GameSystem)
-				{
-					systemCount++;
-				}
+				
+				Assert.That(raceCount, Is.EqualTo(2));
+				Assert.That(systemCount, Is.EqualTo(2));
 			}
-			
-			Assert.That(raceCount, Is.EqualTo(2));
-			Assert.That(systemCount, Is.EqualTo(2));
+			finally
+			{				
+				loader.UnregisterFactory(factory);
+			}
 		}
 	}
 }