annotate API/Factories/Xml/WarFoundryXmlFactoryTests.cs @ 89:90dee8d781ee

Re #253: Allow multiple data files in a single zip * Add and use loader that just listens to events to capture new objects and does nothing else
author IBBoard <dev@ibboard.co.uk>
date Sun, 27 Feb 2011 19:44:08 +0000
parents 5c04db41d643
children 5d19fee8e9dc
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
87
5c04db41d643 Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
1 using System;
5c04db41d643 Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
2 using NUnit.Framework;
5c04db41d643 Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
3 using System.IO;
5c04db41d643 Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
4 using System.Collections.Generic;
5c04db41d643 Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
5 using IBBoard.WarFoundry.API.Objects;
5c04db41d643 Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
6 using NUnit.Framework.SyntaxHelpers;
5c04db41d643 Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
7
5c04db41d643 Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
8 namespace IBBoard.WarFoundry.API.Factories.Xml
5c04db41d643 Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
9 {
5c04db41d643 Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
10 [TestFixture()]
5c04db41d643 Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
11 public class WarFoundryXmlFactoryTests
5c04db41d643 Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
12 {
5c04db41d643 Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
13 [Test()]
5c04db41d643 Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
14 public void TestFactoryHandlesMultipleFilesWithOldNamesInOneSystemZip()
5c04db41d643 Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
15 {
89
90dee8d781ee Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents: 87
diff changeset
16 EventListeningWarFoundryLoader loader = new EventListeningWarFoundryLoader ();
90dee8d781ee Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents: 87
diff changeset
17 WarFoundryLoader.SetDefault(loader);
90dee8d781ee Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents: 87
diff changeset
18 WarFoundryXmlFactory factory = WarFoundryXmlFactory.GetFactory ();
90dee8d781ee Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents: 87
diff changeset
19 loader.RegisterFactory(factory);
90dee8d781ee Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents: 87
diff changeset
20 ICollection<IWarFoundryObject> objs = factory.CreateObjectsFromFile(new FileInfo("testdata/multifile-zips/Test.system"));
87
5c04db41d643 Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
21 Assert.That(objs, Has.Count(2));
5c04db41d643 Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
22 int raceCount = 0;
5c04db41d643 Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
23 int systemCount = 0;
5c04db41d643 Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
24
5c04db41d643 Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
25 foreach (IWarFoundryObject obj in objs)
5c04db41d643 Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
26 {
5c04db41d643 Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
27 if (obj is Race)
5c04db41d643 Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
28 {
5c04db41d643 Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
29 raceCount++;
5c04db41d643 Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
30 }
5c04db41d643 Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
31 else if (obj is GameSystem)
5c04db41d643 Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
32 {
5c04db41d643 Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
33 systemCount++;
5c04db41d643 Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
34 }
5c04db41d643 Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
35 }
5c04db41d643 Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
36
5c04db41d643 Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
37 Assert.That(raceCount, Is.EqualTo(1));
5c04db41d643 Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
38 Assert.That(systemCount, Is.EqualTo(1));
5c04db41d643 Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
39 }
5c04db41d643 Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
40 }
5c04db41d643 Re #253: Allow multiple data files in a single zip
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
41 }