annotate API/Factories/Mock/MockRaceAndSystemFactory.cs @ 230:d6883a522c70

Re #419: Remove assumptions of a file-based install * Make sure Race files aren't identified as GameSystem files
author IBBoard <dev@ibboard.co.uk>
date Wed, 11 Jul 2012 20:54:12 +0100
parents 6ec46f3db2d4
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
229
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
1 // This file (MockSystemFactory.cs) is a part of the IBBoard.WarFoundry.API.Tests project and is copyright 2008, 2009 IBBoard.
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
2 //
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
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.
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
4
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
5 using System;
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
6 using System.IO;
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
7 using IBBoard.WarFoundry.API.Factories;
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
8 using IBBoard.WarFoundry.API.Objects;
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
9 using ICSharpCode.SharpZipLib.Zip;
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
10 using System.Collections.Generic;
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
11
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
12 namespace IBBoard.WarFoundry.API.Factories.Mock
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
13 {
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
14 public class MockRaceAndSystemFactory : AbstractNativeWarFoundryFactory
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
15 {
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
16 private static MockRaceAndSystemFactory mock;
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
17
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
18 private GameSystem gameSystem;
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
19
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
20 public static MockRaceAndSystemFactory GetMockFactory()
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
21 {
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
22 if (mock == null)
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
23 {
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
24 mock = new MockRaceAndSystemFactory();
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
25 }
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
26
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
27 return mock;
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
28 }
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
29
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
30 public MockRaceAndSystemFactory()
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
31 {
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
32 gameSystem = new GameSystem("test", "Test System", this);
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
33 }
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
34
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
35 protected override bool CheckCanFindArmyFileContent(ZipFile file)
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
36 {
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
37 return false;
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
38 }
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
39
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
40 protected override bool CheckCanFindRaceFileContent(ZipFile file)
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
41 {
230
d6883a522c70 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents: 229
diff changeset
42 return file.GetEntry("data.racex") != null;
229
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
43 }
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
44
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
45 protected override bool CheckCanFindSystemFileContent(ZipFile file)
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
46 {
230
d6883a522c70 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents: 229
diff changeset
47 return file.GetEntry("data.systemx") != null;
229
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
48 }
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
49
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
50 protected override Army CreateArmyFromStream(ZipFile file, Stream dataStream)
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
51 {
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
52 throw new NotImplementedException();
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
53 }
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
54
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
55 protected override GameSystem CreateGameSystemFromStream(ZipFile file, Stream dataStream)
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
56 {
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
57 return gameSystem;
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
58 }
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
59
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
60 protected override Race CreateRaceFromStream(ZipFile file, Stream dataStream)
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
61 {
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
62 return new Race("test", "Test Race", gameSystem, this);
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
63 }
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
64
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
65 protected override ICollection<ZipEntry> GetArmyZipEntries(ZipFile file)
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
66 {
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
67 throw new NotImplementedException();
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
68 }
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
69
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
70 protected override ICollection<ZipEntry> GetGameSystemZipEntries(ZipFile file)
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
71 {
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
72 List<ZipEntry> entries = new List<ZipEntry>();
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
73 ZipEntry zipEntry = file.GetEntry("data.systemx");
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
74 if (zipEntry != null)
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
75 {
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
76 entries.Add(zipEntry);
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
77 }
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
78 return entries;
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
79 }
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
80
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
81 protected override ICollection<ZipEntry> GetRaceZipEntries(ZipFile file)
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
82 {
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
83 List<ZipEntry> entries = new List<ZipEntry>();
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
84 ZipEntry zipEntry = file.GetEntry("data.racex");
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
85 if (zipEntry != null)
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
86 {
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
87 entries.Add(zipEntry);
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
88 }
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
89 return entries;
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
90 }
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
91 }
6ec46f3db2d4 Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
92 }