Mercurial > repos > IBBoard.WarFoundry.API.Tests
annotate API/Factories/Xml/WarFoundryXmlRaceFactoryTest.cs @ 57:745820ad7656
Re #274: Crash when missing unit member ID
* Add more specific tests for key and keyref for member type
* Remove ExpectedException with unknown message
Re #290: Migrate to using key/keyref definitions instead of ID/IDREF type
* Add explanation of why tests aren't as perfect as they could be
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sat, 12 Jun 2010 19:51:48 +0000 |
parents | 9d68b5dd70b3 |
children | c642d217036e |
rev | line source |
---|---|
33
03a8ab5e90d6
Re #236: Race loading should fail cleanly if system doesn't exist
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
1 // This file (WarFoundryXmlRaceFactoryTest.cs) is a part of the IBBoard.WarFoundry.API.Tests project and is copyright 2009 IBBoard |
03a8ab5e90d6
Re #236: Race loading should fail cleanly if system doesn't exist
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
2 // |
03a8ab5e90d6
Re #236: Race loading should fail cleanly if system doesn't exist
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
3 // The file and the library/program it is in are licensed and distributed, without warranty, under the GNU Affero GPL license, either version 3 of the License or (at your option) any later version. Please see COPYING for more information and the full license. |
03a8ab5e90d6
Re #236: Race loading should fail cleanly if system doesn't exist
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
4 |
57
745820ad7656
Re #274: Crash when missing unit member ID
IBBoard <dev@ibboard.co.uk>
parents:
51
diff
changeset
|
5 using System; |
745820ad7656
Re #274: Crash when missing unit member ID
IBBoard <dev@ibboard.co.uk>
parents:
51
diff
changeset
|
6 using System.Collections.Generic; |
745820ad7656
Re #274: Crash when missing unit member ID
IBBoard <dev@ibboard.co.uk>
parents:
51
diff
changeset
|
7 using System.IO; |
745820ad7656
Re #274: Crash when missing unit member ID
IBBoard <dev@ibboard.co.uk>
parents:
51
diff
changeset
|
8 using System.Xml.Schema; |
47
b4b4bde843d7
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
45
diff
changeset
|
9 using IBBoard.IO; |
b4b4bde843d7
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
45
diff
changeset
|
10 using IBBoard.WarFoundry.API.Objects; |
b4b4bde843d7
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
45
diff
changeset
|
11 using NUnit.Framework; |
50
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
12 using NUnit.Framework.SyntaxHelpers; |
33
03a8ab5e90d6
Re #236: Race loading should fail cleanly if system doesn't exist
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
13 |
03a8ab5e90d6
Re #236: Race loading should fail cleanly if system doesn't exist
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
14 namespace IBBoard.WarFoundry.API.Factories.Xml |
03a8ab5e90d6
Re #236: Race loading should fail cleanly if system doesn't exist
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
15 { |
57
745820ad7656
Re #274: Crash when missing unit member ID
IBBoard <dev@ibboard.co.uk>
parents:
51
diff
changeset
|
16 //It would be better to explicitly check that some of these errors are certain types of schema validation error, but Mono and .Net have |
745820ad7656
Re #274: Crash when missing unit member ID
IBBoard <dev@ibboard.co.uk>
parents:
51
diff
changeset
|
17 //different exception messages for the same text and just have one class for all schema exceptions of all types. |
33
03a8ab5e90d6
Re #236: Race loading should fail cleanly if system doesn't exist
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
18 [TestFixture()] |
03a8ab5e90d6
Re #236: Race loading should fail cleanly if system doesn't exist
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
19 public class WarFoundryXmlRaceFactoryTest |
03a8ab5e90d6
Re #236: Race loading should fail cleanly if system doesn't exist
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
20 { |
43
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
21 [TearDown()] |
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
22 public void AfterTestCleanup() |
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
23 { |
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
24 WarFoundryLoader.SetDefault(null); |
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
25 } |
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
26 |
33
03a8ab5e90d6
Re #236: Race loading should fail cleanly if system doesn't exist
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
27 [Test()] |
35
4302e6b2c5c1
Re #228: Crash with missing abilityID
IBBoard <dev@ibboard.co.uk>
parents:
33
diff
changeset
|
28 [ExpectedException(typeof(InvalidFileException), ExpectedMessage="Ability for Empire General with ID leaderOfMen did not exist in race definition")] |
43
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
29 public void TestCompleteLoadingOnRaceWithMissingAbilityIdErrors() |
33
03a8ab5e90d6
Re #236: Race loading should fail cleanly if system doesn't exist
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
30 { |
45
04d7cd276b1d
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
44
diff
changeset
|
31 SetDefaultGameSystem(new FileInfo("testdata/race-with-non-existant-ability.systemx")); |
43
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
32 FileInfo raceFile = new FileInfo("testdata/race-with-non-existant-ability.racex"); |
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
33 Race race = SingleXmlObjectLoader.LoadRaceFromXML(WarFoundryXmlFactory.GetFactory(), raceFile); |
45
04d7cd276b1d
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
44
diff
changeset
|
34 race.EnsureFullyLoaded(); |
04d7cd276b1d
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
44
diff
changeset
|
35 } |
04d7cd276b1d
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
44
diff
changeset
|
36 |
04d7cd276b1d
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
44
diff
changeset
|
37 [Test()] |
04d7cd276b1d
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
44
diff
changeset
|
38 public void TestCompleteLoadingOnRaceWithIncorrectMemberTypeIDError() |
04d7cd276b1d
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
44
diff
changeset
|
39 { |
04d7cd276b1d
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
44
diff
changeset
|
40 SetDefaultGameSystem(); |
04d7cd276b1d
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
44
diff
changeset
|
41 FileInfo raceFile = new FileInfo("testdata/single-unit-non-existant-type-referencing-race.racex"); |
57
745820ad7656
Re #274: Crash when missing unit member ID
IBBoard <dev@ibboard.co.uk>
parents:
51
diff
changeset
|
42 try |
745820ad7656
Re #274: Crash when missing unit member ID
IBBoard <dev@ibboard.co.uk>
parents:
51
diff
changeset
|
43 { |
745820ad7656
Re #274: Crash when missing unit member ID
IBBoard <dev@ibboard.co.uk>
parents:
51
diff
changeset
|
44 SingleXmlObjectLoader.LoadRaceFromXML(WarFoundryXmlFactory.GetFactory(), raceFile); |
745820ad7656
Re #274: Crash when missing unit member ID
IBBoard <dev@ibboard.co.uk>
parents:
51
diff
changeset
|
45 Assert.Fail(); |
745820ad7656
Re #274: Crash when missing unit member ID
IBBoard <dev@ibboard.co.uk>
parents:
51
diff
changeset
|
46 } |
745820ad7656
Re #274: Crash when missing unit member ID
IBBoard <dev@ibboard.co.uk>
parents:
51
diff
changeset
|
47 catch (InvalidFileException ex) |
745820ad7656
Re #274: Crash when missing unit member ID
IBBoard <dev@ibboard.co.uk>
parents:
51
diff
changeset
|
48 { |
745820ad7656
Re #274: Crash when missing unit member ID
IBBoard <dev@ibboard.co.uk>
parents:
51
diff
changeset
|
49 Exception innerException = ex.InnerException; |
745820ad7656
Re #274: Crash when missing unit member ID
IBBoard <dev@ibboard.co.uk>
parents:
51
diff
changeset
|
50 Assert.That(innerException, Is.InstanceOfType(typeof(XmlSchemaValidationException))); |
745820ad7656
Re #274: Crash when missing unit member ID
IBBoard <dev@ibboard.co.uk>
parents:
51
diff
changeset
|
51 XmlSchemaValidationException schemaEx = (XmlSchemaValidationException) innerException; |
745820ad7656
Re #274: Crash when missing unit member ID
IBBoard <dev@ibboard.co.uk>
parents:
51
diff
changeset
|
52 Assert.That(schemaEx.LineNumber, Is.EqualTo(6)); |
745820ad7656
Re #274: Crash when missing unit member ID
IBBoard <dev@ibboard.co.uk>
parents:
51
diff
changeset
|
53 Assert.That(schemaEx.LinePosition, Is.EqualTo(6)); |
745820ad7656
Re #274: Crash when missing unit member ID
IBBoard <dev@ibboard.co.uk>
parents:
51
diff
changeset
|
54 } |
745820ad7656
Re #274: Crash when missing unit member ID
IBBoard <dev@ibboard.co.uk>
parents:
51
diff
changeset
|
55 |
33
03a8ab5e90d6
Re #236: Race loading should fail cleanly if system doesn't exist
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
56 } |
47
b4b4bde843d7
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
45
diff
changeset
|
57 |
b4b4bde843d7
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
45
diff
changeset
|
58 [Test()] |
b4b4bde843d7
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
45
diff
changeset
|
59 [ExpectedException(typeof(InvalidFileException), ExpectedMessage = "TBD")] |
b4b4bde843d7
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
45
diff
changeset
|
60 public void TestCompleteLoadingOnRaceWithIncorrectEquipmentSlotErrors() |
b4b4bde843d7
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
45
diff
changeset
|
61 { |
b4b4bde843d7
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
45
diff
changeset
|
62 SetDefaultGameSystem(); |
b4b4bde843d7
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
45
diff
changeset
|
63 FileInfo raceFile = new FileInfo("testdata/single-unit-with-invalid-equipment-reference.racex"); |
b4b4bde843d7
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
45
diff
changeset
|
64 Race race = SingleXmlObjectLoader.LoadRaceFromXML(WarFoundryXmlFactory.GetFactory(), raceFile); |
b4b4bde843d7
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
45
diff
changeset
|
65 race.EnsureFullyLoaded(); |
b4b4bde843d7
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
45
diff
changeset
|
66 } |
33
03a8ab5e90d6
Re #236: Race loading should fail cleanly if system doesn't exist
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
67 |
03a8ab5e90d6
Re #236: Race loading should fail cleanly if system doesn't exist
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
68 [Test()] |
35
4302e6b2c5c1
Re #228: Crash with missing abilityID
IBBoard <dev@ibboard.co.uk>
parents:
33
diff
changeset
|
69 [ExpectedException(typeof(InvalidFileException), ExpectedMessage="Referenced game system, 'nonexistant-system', did not exist")] |
43
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
70 public void TestCompleteLoadingOnRaceWithMissingGameSystemErrors() |
33
03a8ab5e90d6
Re #236: Race loading should fail cleanly if system doesn't exist
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
71 { |
03a8ab5e90d6
Re #236: Race loading should fail cleanly if system doesn't exist
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
72 ICollection<IWarFoundryObject> objs = WarFoundryXmlFactory.GetFactory().CreateObjectsFromFile(new FileInfo("testdata/race-with-non-existant-game-system.race")); |
03a8ab5e90d6
Re #236: Race loading should fail cleanly if system doesn't exist
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
73 Assert.AreEqual(1, objs.Count); |
03a8ab5e90d6
Re #236: Race loading should fail cleanly if system doesn't exist
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
74 IEnumerator<IWarFoundryObject> enumerator = objs.GetEnumerator(); |
03a8ab5e90d6
Re #236: Race loading should fail cleanly if system doesn't exist
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
75 enumerator.Reset(); |
03a8ab5e90d6
Re #236: Race loading should fail cleanly if system doesn't exist
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
76 enumerator.MoveNext(); |
03a8ab5e90d6
Re #236: Race loading should fail cleanly if system doesn't exist
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
77 Race race = (Race)enumerator.Current; |
45
04d7cd276b1d
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
44
diff
changeset
|
78 race.EnsureFullyLoaded(); |
33
03a8ab5e90d6
Re #236: Race loading should fail cleanly if system doesn't exist
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
79 } |
43
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
80 |
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
81 [Test()] |
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
82 public void TestSingleUnitArmyLoadsSuccessfully() |
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
83 { |
45
04d7cd276b1d
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
44
diff
changeset
|
84 SetDefaultGameSystem(); |
43
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
85 FileInfo raceFile = new FileInfo("testdata/single-unit-race.racex"); |
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
86 Race race = SingleXmlObjectLoader.LoadRaceFromXML(WarFoundryXmlFactory.GetFactory(), raceFile); |
51
9d68b5dd70b3
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
50
diff
changeset
|
87 Assert.That(race.GetUnitType("Empire1"), Is.Not.Null); |
43
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
88 UnitType[] unitTypes = race.GetUnitTypes(race.GetCategory("cat1")); |
44
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
89 Assert.AreEqual(1, unitTypes.Length); |
43
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
90 UnitType unitType = unitTypes[0]; |
44
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
91 Stat[] stats = unitType.UnitStatsArrays[0]; |
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
92 Assert.AreEqual(9, stats.Length); |
43
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
93 Assert.AreEqual("M", stats[0].ParentSlotName); |
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
94 Assert.AreEqual("4", stats[0].SlotValueString); |
44
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
95 Assert.AreEqual("Empire General", unitType.UnitStatsArraysWithName[0][0].SlotValueString); |
43
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
96 } |
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
97 |
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
98 [Test()] |
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
99 public void TestSingleUnitArmyWithMemberTypeReferenceLoadsSuccessfully() |
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
100 { |
45
04d7cd276b1d
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
44
diff
changeset
|
101 SetDefaultGameSystem(); |
43
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
102 FileInfo raceFile = new FileInfo("testdata/single-unit-type-referencing-race.racex"); |
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
103 Race race = SingleXmlObjectLoader.LoadRaceFromXML(WarFoundryXmlFactory.GetFactory(), raceFile); |
51
9d68b5dd70b3
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
50
diff
changeset
|
104 Assert.That(race.GetUnitType("Empire1"), Is.Not.Null); |
43
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
105 UnitType[] unitTypes = race.GetUnitTypes(race.GetCategory("cat1")); |
44
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
106 Assert.AreEqual(1, unitTypes.Length); |
43
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
107 UnitType unitType = unitTypes[0]; |
44
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
108 Stat[] stats = unitType.UnitStatsArrays[0]; |
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
109 Assert.AreEqual(9, stats.Length); |
43
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
110 Assert.AreEqual("M", stats[0].ParentSlotName); |
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
111 Assert.AreEqual("4", stats[0].SlotValueString); |
44
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
112 Assert.AreEqual("General", unitType.UnitStatsArraysWithName[0][0].SlotValueString); |
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
113 } |
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
114 |
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
115 [Test()] |
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
116 public void TestSingleUnitArmyWithMultipleMemberTypeReferencesLoadsSuccessfully() |
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
117 { |
45
04d7cd276b1d
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
44
diff
changeset
|
118 SetDefaultGameSystem(); |
44
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
119 FileInfo raceFile = new FileInfo("testdata/single-unit-multi-type-referencing-race.racex"); |
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
120 Race race = SingleXmlObjectLoader.LoadRaceFromXML(WarFoundryXmlFactory.GetFactory(), raceFile); |
51
9d68b5dd70b3
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
50
diff
changeset
|
121 Assert.That(race.GetUnitType("Empire1"), Is.Not.Null); |
44
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
122 UnitType[] unitTypes = race.GetUnitTypes(race.GetCategory("cat1")); |
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
123 Assert.AreEqual(1, unitTypes.Length); |
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
124 UnitType unitType = unitTypes[0]; |
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
125 Stat[][] stats = unitType.UnitStatsArrays; |
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
126 Assert.AreEqual(2, stats.Length); |
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
127 Assert.AreEqual("M", stats[0][0].ParentSlotName); |
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
128 Assert.AreEqual("4", stats[0][0].SlotValueString); |
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
129 Assert.AreEqual("General", unitType.UnitStatsArraysWithName[0][0].SlotValueString); |
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
130 Assert.AreEqual("M", stats[1][0].ParentSlotName); |
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
131 Assert.AreEqual("8", stats[1][0].SlotValueString); |
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
132 Assert.AreEqual("Warhorse", unitType.UnitStatsArraysWithName[1][0].SlotValueString); |
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
133 } |
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
134 |
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
135 [Test()] |
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
136 public void TestSingleUnitArmyWithMultipleMemberTypeReferencesAndOverrideLoadsSuccessfully() |
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
137 { |
45
04d7cd276b1d
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
44
diff
changeset
|
138 SetDefaultGameSystem(); |
44
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
139 FileInfo raceFile = new FileInfo("testdata/single-unit-multi-type-referencing-race-with-override.racex"); |
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
140 Race race = SingleXmlObjectLoader.LoadRaceFromXML(WarFoundryXmlFactory.GetFactory(), raceFile); |
51
9d68b5dd70b3
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
50
diff
changeset
|
141 Assert.That(race.GetUnitType("Empire1"), Is.Not.Null); |
44
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
142 UnitType[] unitTypes = race.GetUnitTypes(race.GetCategory("cat1")); |
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
143 Assert.AreEqual(1, unitTypes.Length); |
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
144 UnitType unitType = unitTypes[0]; |
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
145 Stat[][] allStats = unitType.UnitStatsArrays; |
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
146 Stat[] stats = allStats[0]; |
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
147 Assert.AreEqual(1, allStats.Length); |
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
148 Assert.AreEqual(9, stats.Length); |
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
149 Assert.AreEqual("M", stats[0].ParentSlotName); |
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
150 Assert.AreEqual("4", stats[0].SlotValueString); |
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
151 Assert.AreEqual("Empire General", unitType.UnitStatsArraysWithName[0][0].SlotValueString); |
43
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
152 } |
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
153 |
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
154 [Test()] |
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
155 public void TestSingleUnitArmyWithNoStatsReturnsUnitWithBlankStats() |
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
156 { |
45
04d7cd276b1d
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
44
diff
changeset
|
157 SetDefaultGameSystem(); |
43
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
158 FileInfo raceFile = new FileInfo("testdata/single-unit-no-stats-race.racex"); |
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
159 Race race = SingleXmlObjectLoader.LoadRaceFromXML(WarFoundryXmlFactory.GetFactory(), raceFile); |
51
9d68b5dd70b3
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
50
diff
changeset
|
160 Assert.That(race.GetUnitType("Empire1"), Is.Not.Null); |
43
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
161 UnitType[] unitTypes = race.GetUnitTypes(race.GetCategory("cat1")); |
44
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
162 Assert.AreEqual(1, unitTypes.Length); |
43
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
163 UnitType unitType = unitTypes[0]; |
44
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
164 Stat[] stats = unitType.UnitStatsArrays[0]; |
43
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
165 Assert.That(stats.Length == race.GameSystem.StandardSystemStats.SlotCount); |
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
166 |
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
167 foreach (Stat stat in stats) |
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
168 { |
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
169 Assert.AreEqual("", stat.SlotValueString); |
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
170 } |
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
171 |
44
0de5d86bc1cb
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
172 Assert.AreEqual("Empire General", unitType.UnitStatsArraysWithName[0][0].SlotValueString); |
43
00abd1c2f7d6
Re #268: Restructure stats for re-use
IBBoard <dev@ibboard.co.uk>
parents:
36
diff
changeset
|
173 } |
50
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
174 |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
175 [Test()] |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
176 public void TestSingleUnitArmyWithNoCategoriesUsesMainCategory() |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
177 { |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
178 SetDefaultGameSystem(); |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
179 FileInfo raceFile = new FileInfo("testdata/single-unit-no-category.racex"); |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
180 Race race = SingleXmlObjectLoader.LoadRaceFromXML(WarFoundryXmlFactory.GetFactory(), raceFile); |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
181 Category category = race.GetCategory("cat1"); |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
182 UnitType[] unitTypes = race.GetUnitTypes(category); |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
183 Assert.AreEqual(1, unitTypes.Length); |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
184 UnitType unitType = unitTypes[0]; |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
185 Assert.That(unitType.MainCategory, Is.EqualTo(category)); |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
186 Assert.That(unitType.Categories.Length, Is.EqualTo(1)); |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
187 Assert.That(unitType.Categories, Has.Member(category)); |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
188 } |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
189 |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
190 [Test()] |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
191 public void TestSingleUnitArmyWithOneCategoryAndSameMainCategoryHasOneCategory() |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
192 { |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
193 SetDefaultGameSystem(); |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
194 FileInfo raceFile = new FileInfo("testdata/single-unit-one-category-same-main-category.racex"); |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
195 Race race = SingleXmlObjectLoader.LoadRaceFromXML(WarFoundryXmlFactory.GetFactory(), raceFile); |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
196 Category category = race.GetCategory("cat1"); |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
197 UnitType[] unitTypes = race.GetUnitTypes(category); |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
198 Assert.AreEqual(1, unitTypes.Length); |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
199 UnitType unitType = unitTypes[0]; |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
200 Assert.That(unitType.MainCategory, Is.EqualTo(category)); |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
201 Assert.That(unitType.Categories.Length, Is.EqualTo(1)); |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
202 Assert.That(unitType.Categories, Has.Member(category)); |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
203 } |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
204 |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
205 [Test()] |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
206 public void TestSingleUnitArmyWithOneCategoryAndDifferentMainCategoryHasTwoCategories() |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
207 { |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
208 SetDefaultGameSystem(); |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
209 FileInfo raceFile = new FileInfo("testdata/single-unit-one-category-different-main-category.racex"); |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
210 Race race = SingleXmlObjectLoader.LoadRaceFromXML(WarFoundryXmlFactory.GetFactory(), raceFile); |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
211 Category category = race.GetCategory("cat1"); |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
212 UnitType[] unitTypes = race.GetUnitTypes(category); |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
213 Assert.AreEqual(1, unitTypes.Length); |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
214 UnitType unitType = unitTypes[0]; |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
215 Assert.That(unitType.MainCategory, Is.EqualTo(category)); |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
216 Assert.That(unitType.Categories.Length, Is.EqualTo(2)); |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
217 Assert.That(unitType.Categories, Has.Member(category)); |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
218 Assert.That(unitType.Categories, Has.Member(race.GetCategory("cat2"))); |
d3519f38a0f4
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
47
diff
changeset
|
219 } |
51
9d68b5dd70b3
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
50
diff
changeset
|
220 |
9d68b5dd70b3
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
50
diff
changeset
|
221 [Test()] |
9d68b5dd70b3
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
50
diff
changeset
|
222 public void TestSingleUnitArmyWithMultipleCategoriesIsInEachCategory() |
9d68b5dd70b3
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
50
diff
changeset
|
223 { |
9d68b5dd70b3
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
50
diff
changeset
|
224 SetDefaultGameSystem(); |
9d68b5dd70b3
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
50
diff
changeset
|
225 FileInfo raceFile = new FileInfo("testdata/single-unit-two-categories.racex"); |
9d68b5dd70b3
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
50
diff
changeset
|
226 Race race = SingleXmlObjectLoader.LoadRaceFromXML(WarFoundryXmlFactory.GetFactory(), raceFile); |
9d68b5dd70b3
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
50
diff
changeset
|
227 UnitType unitType = race.GetUnitType("Empire1"); |
9d68b5dd70b3
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
50
diff
changeset
|
228 Assert.That(unitType.Categories.Length, Is.EqualTo(2)); |
9d68b5dd70b3
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
50
diff
changeset
|
229 Category cat1 = race.GetCategory("cat1"); |
9d68b5dd70b3
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
50
diff
changeset
|
230 Category cat2 = race.GetCategory("cat2"); |
9d68b5dd70b3
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
50
diff
changeset
|
231 Assert.That(unitType.MainCategory, Is.EqualTo(cat1)); |
9d68b5dd70b3
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
50
diff
changeset
|
232 Assert.That(unitType.Categories, Has.Member(cat1)); |
9d68b5dd70b3
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
50
diff
changeset
|
233 Assert.That(unitType.Categories, Has.Member(cat2)); |
9d68b5dd70b3
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
50
diff
changeset
|
234 Assert.That(race.GetUnitTypes(cat1), Is.All.EqualTo(unitType)); |
9d68b5dd70b3
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
50
diff
changeset
|
235 UnitType[] unitTypesCat2 = race.GetUnitTypes(cat2); |
9d68b5dd70b3
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
50
diff
changeset
|
236 Assert.That(unitTypesCat2, Has.Length(1)); |
9d68b5dd70b3
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
50
diff
changeset
|
237 Assert.That(unitTypesCat2, Is.All.EqualTo(unitType)); |
9d68b5dd70b3
Re #270: Add multiple categories to API
IBBoard <dev@ibboard.co.uk>
parents:
50
diff
changeset
|
238 } |
45
04d7cd276b1d
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
44
diff
changeset
|
239 |
04d7cd276b1d
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
44
diff
changeset
|
240 private static void SetDefaultGameSystem() |
47
b4b4bde843d7
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
45
diff
changeset
|
241 { |
b4b4bde843d7
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
45
diff
changeset
|
242 SetDefaultGameSystem(new FileInfo("testdata/default.systemx")); |
45
04d7cd276b1d
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
44
diff
changeset
|
243 } |
04d7cd276b1d
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
44
diff
changeset
|
244 |
04d7cd276b1d
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
44
diff
changeset
|
245 public static void SetDefaultGameSystem(FileInfo systemFile) |
04d7cd276b1d
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
44
diff
changeset
|
246 { |
04d7cd276b1d
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
44
diff
changeset
|
247 GameSystem system = SingleXmlObjectLoader.LoadGameSystemFromXML(WarFoundryXmlFactory.GetFactory(), systemFile); |
04d7cd276b1d
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
44
diff
changeset
|
248 FixedGameSystemWarFoundryLoader fixedLoader = new FixedGameSystemWarFoundryLoader(system); |
04d7cd276b1d
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
44
diff
changeset
|
249 WarFoundryLoader.SetDefault(fixedLoader); |
04d7cd276b1d
Re #274: crash when missing unitMember id
IBBoard <dev@ibboard.co.uk>
parents:
44
diff
changeset
|
250 } |
33
03a8ab5e90d6
Re #236: Race loading should fail cleanly if system doesn't exist
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
251 } |
03a8ab5e90d6
Re #236: Race loading should fail cleanly if system doesn't exist
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
252 } |