Mercurial > repos > IBDev-IBBoard.WarFoundry.API.Tests
annotate API/WarFoundryLoaderTest.cs @ 239:370bec16a364 default tip
Add initial testing for equipment with type (incomplete)
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sun, 16 Oct 2016 20:29:35 +0100 |
parents | e173c5512067 |
children |
rev | line source |
---|---|
11 | 1 // This file (WarFoundryLoaderTest.cs) is a part of the IBBoard.WarFoundry.API.Tests project and is copyright 2008, 2009 IBBoard. |
0 | 2 // |
11 | 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. |
0 | 4 |
5 using System; | |
6 using System.IO; | |
7 using NUnit.Framework; | |
12
a4e7e938d065
Re #195: Setting max equipment without min may not function correctly
IBBoard <dev@ibboard.co.uk>
parents:
11
diff
changeset
|
8 using IBBoard.WarFoundry.API.Factories.Mock; |
0 | 9 using IBBoard.WarFoundry.API.Objects; |
86
d1ec7618f812
Fixes #318: DefaultWarFoundryLoader throws null ref when loading individual files
IBBoard <dev@ibboard.co.uk>
parents:
35
diff
changeset
|
10 using System.Collections.Generic; |
d1ec7618f812
Fixes #318: DefaultWarFoundryLoader throws null ref when loading individual files
IBBoard <dev@ibboard.co.uk>
parents:
35
diff
changeset
|
11 using IBBoard.WarFoundry.API.Factories.Xml; |
157
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
12 using IBBoard.WarFoundry.API.Factories.Requirement; |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
13 using IBBoard.WarFoundry.API.Objects.Requirement; |
228
7c21ca1482cb
Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
157
diff
changeset
|
14 using IBBoard.WarFoundry.API.Loading; |
0 | 15 |
16 namespace IBBoard.WarFoundry.API.Factories | |
17 { | |
18 [TestFixture()] | |
19 public class WarFoundryLoaderTest | |
20 { | |
9 | 21 private AbstractNativeWarFoundryFactory sysFactory; |
0 | 22 |
23 [Test()] | |
24 public void TestLoadWithoutFactoriesCompletesWithoutError() | |
25 { | |
26 WarFoundryLoader.GetDefault().LoadFiles(); | |
27 } | |
28 | |
29 [Test()] | |
30 public void TestLoadingSystemCompletesWithoutError() | |
31 { | |
35
4302e6b2c5c1
Re #228: Crash with missing abilityID
IBBoard <dev@ibboard.co.uk>
parents:
12
diff
changeset
|
32 AbstractWarFoundryLoader loader = WarFoundryLoader.GetDefault(); |
9 | 33 DirectoryInfo dir = new DirectoryInfo("testdata"); |
34 loader.RegisterFactory(GetSystemFactory()); | |
228
7c21ca1482cb
Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
157
diff
changeset
|
35 ILoadableObjectSource loadSource = new LoadableObjectSourceDirectory(dir); |
7c21ca1482cb
Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
157
diff
changeset
|
36 loader.AddLoadSource(loadSource); |
0 | 37 loader.LoadFiles(); |
38 Assert.Greater(loader.GetGameSystems().Length, 0); | |
228
7c21ca1482cb
Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
157
diff
changeset
|
39 loader.RemoveLoadSource(loadSource); |
9 | 40 loader.UnregisterFactory(GetSystemFactory()); |
0 | 41 } |
86
d1ec7618f812
Fixes #318: DefaultWarFoundryLoader throws null ref when loading individual files
IBBoard <dev@ibboard.co.uk>
parents:
35
diff
changeset
|
42 |
d1ec7618f812
Fixes #318: DefaultWarFoundryLoader throws null ref when loading individual files
IBBoard <dev@ibboard.co.uk>
parents:
35
diff
changeset
|
43 [Test()] |
d1ec7618f812
Fixes #318: DefaultWarFoundryLoader throws null ref when loading individual files
IBBoard <dev@ibboard.co.uk>
parents:
35
diff
changeset
|
44 public void TestBug318LoadingSingleFileShouldNotNullRef() |
d1ec7618f812
Fixes #318: DefaultWarFoundryLoader throws null ref when loading individual files
IBBoard <dev@ibboard.co.uk>
parents:
35
diff
changeset
|
45 { |
d1ec7618f812
Fixes #318: DefaultWarFoundryLoader throws null ref when loading individual files
IBBoard <dev@ibboard.co.uk>
parents:
35
diff
changeset
|
46 DefaultWarFoundryLoader loader = new DefaultWarFoundryLoader(); |
d1ec7618f812
Fixes #318: DefaultWarFoundryLoader throws null ref when loading individual files
IBBoard <dev@ibboard.co.uk>
parents:
35
diff
changeset
|
47 loader.RegisterFactory(WarFoundryXmlFactory.GetFactory()); |
d1ec7618f812
Fixes #318: DefaultWarFoundryLoader throws null ref when loading individual files
IBBoard <dev@ibboard.co.uk>
parents:
35
diff
changeset
|
48 ICollection<IWarFoundryObject> objs = loader.LoadFile(new FileInfo("testdata/Test.system")); |
238
e173c5512067
* Update to v2.6 of NUnit and new syntax/API changes
IBBoard <dev@ibboard.co.uk>
parents:
229
diff
changeset
|
49 Assert.That(objs, Has.Count.EqualTo(1)); |
86
d1ec7618f812
Fixes #318: DefaultWarFoundryLoader throws null ref when loading individual files
IBBoard <dev@ibboard.co.uk>
parents:
35
diff
changeset
|
50 } |
157
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
51 |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
52 [Test()] |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
53 public void TestRegisterRequirementFactoryAddsFactory() |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
54 { |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
55 string factoryID = "SomeID"; |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
56 MockRequirementFactory mockFactory = new MockRequirementFactory(factoryID); |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
57 WarFoundryLoader.RegisterRequirementFactory(mockFactory); |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
58 Assert.That(WarFoundryLoader.GetRequirementFactory(factoryID), Is.EqualTo(mockFactory)); |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
59 Assert.That(WarFoundryLoader.GetRequirementFactory("fibble"), Is.Null); |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
60 } |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
61 |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
62 [Test()] |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
63 public void TestRegisterRequirementFactoryAddsFactories() |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
64 { |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
65 string factoryID1 = "SomeID"; |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
66 MockRequirementFactory mockFactory1 = new MockRequirementFactory(factoryID1); |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
67 WarFoundryLoader.RegisterRequirementFactory(mockFactory1); |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
68 string factoryID2 = "SomeOtherID"; |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
69 MockRequirementFactory mockFactory2 = new MockRequirementFactory(factoryID2); |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
70 WarFoundryLoader.RegisterRequirementFactory(mockFactory2); |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
71 Assert.That(WarFoundryLoader.GetRequirementFactory(factoryID1), Is.EqualTo(mockFactory1)); |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
72 Assert.That(WarFoundryLoader.GetRequirementFactory(factoryID2), Is.EqualTo(mockFactory2)); |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
73 Assert.That(WarFoundryLoader.GetRequirementFactory("fibble"), Is.Null); |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
74 } |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
75 |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
76 [Test()] |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
77 public void TestRegisterRequirementFactoryOverridesWithSecondFactory() |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
78 { |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
79 string factoryID = "SomeID"; |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
80 MockRequirementFactory mockFactory1 = new MockRequirementFactory(factoryID); |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
81 WarFoundryLoader.RegisterRequirementFactory(mockFactory1); |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
82 Assert.That(WarFoundryLoader.GetRequirementFactory(factoryID), Is.EqualTo(mockFactory1)); |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
83 MockRequirementFactory mockFactory2 = new MockRequirementFactory(factoryID); |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
84 WarFoundryLoader.RegisterRequirementFactory(mockFactory2); |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
85 Assert.That(WarFoundryLoader.GetRequirementFactory(factoryID), Is.Not.EqualTo(mockFactory1)); |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
86 Assert.That(WarFoundryLoader.GetRequirementFactory(factoryID), Is.EqualTo(mockFactory2)); |
17c5030485dc
Re #351: Add extensible requirement handling method
IBBoard <dev@ibboard.co.uk>
parents:
86
diff
changeset
|
87 } |
229
6ec46f3db2d4
Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
228
diff
changeset
|
88 |
6ec46f3db2d4
Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
228
diff
changeset
|
89 [Test()] |
6ec46f3db2d4
Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
228
diff
changeset
|
90 public void TestRegisteringResourceFiles() |
6ec46f3db2d4
Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
228
diff
changeset
|
91 { |
6ec46f3db2d4
Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
228
diff
changeset
|
92 AbstractWarFoundryLoader loader = WarFoundryLoader.GetDefault(); |
6ec46f3db2d4
Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
228
diff
changeset
|
93 loader.RegisterFactory(new MockRaceAndSystemFactory()); |
6ec46f3db2d4
Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
228
diff
changeset
|
94 ILoadableObjectSource loadSource = new LoadableObjectSourceResourceSet(typeof(WarFoundryLoader).Assembly, "IBBoard.WarFoundry.data.Empire.race", "IBBoard.WarFoundry.data.SampleSystem.system"); |
6ec46f3db2d4
Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
228
diff
changeset
|
95 loader.AddLoadSource(loadSource); |
6ec46f3db2d4
Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
228
diff
changeset
|
96 loader.LoadFiles(); |
6ec46f3db2d4
Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
228
diff
changeset
|
97 |
6ec46f3db2d4
Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
228
diff
changeset
|
98 try |
6ec46f3db2d4
Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
228
diff
changeset
|
99 { |
238
e173c5512067
* Update to v2.6 of NUnit and new syntax/API changes
IBBoard <dev@ibboard.co.uk>
parents:
229
diff
changeset
|
100 Assert.That(loader.GetGameSystems(), Has.Length.EqualTo(1)); |
229
6ec46f3db2d4
Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
228
diff
changeset
|
101 GameSystem gameSystem = loader.GetGameSystems()[0]; |
238
e173c5512067
* Update to v2.6 of NUnit and new syntax/API changes
IBBoard <dev@ibboard.co.uk>
parents:
229
diff
changeset
|
102 Assert.That(loader.GetRaces(gameSystem), Has.Length.EqualTo(1)); |
229
6ec46f3db2d4
Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
228
diff
changeset
|
103 } |
6ec46f3db2d4
Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
228
diff
changeset
|
104 finally |
6ec46f3db2d4
Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
228
diff
changeset
|
105 { |
6ec46f3db2d4
Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
228
diff
changeset
|
106 loader.RemoveLoadSource(loadSource); |
6ec46f3db2d4
Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
228
diff
changeset
|
107 loader.UnregisterFactory(GetSystemFactory()); |
6ec46f3db2d4
Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
228
diff
changeset
|
108 } |
6ec46f3db2d4
Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
228
diff
changeset
|
109 } |
0 | 110 |
9 | 111 private AbstractNativeWarFoundryFactory GetSystemFactory() |
0 | 112 { |
9 | 113 if (sysFactory == null) |
0 | 114 { |
9 | 115 sysFactory = new MockSystemFactory(); |
0 | 116 } |
117 | |
9 | 118 return sysFactory; |
0 | 119 } |
120 } | |
121 } |