Mercurial > repos > IBBoard.WarFoundry.API.Tests
annotate API/Objects/Requirement/UnitRequiresNParentModelsForMUnitsRequirementTests.cs @ 232:fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
* Finish "adding" tests
* Add common methods for handling adding units
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sun, 29 Jul 2012 14:17:21 +0100 |
parents | 5e03b68dd214 |
children | 99248d05ba9c |
rev | line source |
---|---|
231
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
1 // This file (UnitRequiresNoMoreThanNUnitsPerMModelsInParentUnitRequirementTests.cs) is a part of the IBBoard.WarFoundry.API.Tests project and is copyright 2012 IBBoard |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
2 // |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
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. |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
4 using System; |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
5 using NUnit.Framework; |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
6 using NUnit.Framework.SyntaxHelpers; |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
7 using IBBoard.WarFoundry.API.Objects.Requirement.Context; |
232
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
8 using System.Collections.Generic; |
231
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
9 |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
10 namespace IBBoard.WarFoundry.API.Objects.Requirement |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
11 { |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
12 [TestFixture()] |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
13 public class UnitRequiresNParentModelsForMUnitsRequirementTests: AbstractUnitTypeUnitRequirementTest<UnitType, UnitRequiresNParentModelsForMUnitsRequirement> |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
14 { |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
15 [Test()] |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
16 public void TestAddingUnitTypeWithNoParentAndOneUnitTypeRequiredIsAllowed() |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
17 { |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
18 Army army = new Army(mockRace, "Test", 1000); |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
19 UnitRequiresNParentModelsForMUnitsRequirement req = new UnitRequiresNParentModelsForMUnitsRequirement(unitType1); |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
20 req.AddUnitTypeRequirement(unitType2); |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
21 Assert_That__AddingNotApplicable(req, unitType1, army); |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
22 } |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
23 |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
24 [Test()] |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
25 public void TestAddingUnitTypeWithParentAndOneUnitTypeRequiredIsAllowed() |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
26 { |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
27 Army army = new Army(mockRace, "Test", 1000); |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
28 Unit parent = AddUnitOfTypeToArmy(unitType2, army); |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
29 UnitRequiresNParentModelsForMUnitsRequirement req = new UnitRequiresNParentModelsForMUnitsRequirement(unitType1); |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
30 req.AddUnitTypeRequirement(unitType2); |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
31 Assert_That__PassesAdding(req, unitType1, parent, army); |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
32 } |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
33 |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
34 [Test()] |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
35 public void TestAddingUnitTypeWithWrongParentAndOneUnitTypeRequiredIsNotApplicable() |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
36 { |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
37 Army army = new Army(mockRace, "Test", 1000); |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
38 Unit parent = AddUnitOfTypeToArmy(unitType2, army); |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
39 UnitRequiresNParentModelsForMUnitsRequirement req = new UnitRequiresNParentModelsForMUnitsRequirement(unitType1); |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
40 req.AddUnitTypeRequirement(unitType3); |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
41 Assert_That__AddingNotApplicable(req, unitType1, parent, army); |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
42 } |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
43 |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
44 [Test()] |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
45 public void TestAddingTooManyUnitTypesWithParentAndOneUnitTypeRequiredFails() |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
46 { |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
47 Army army = new Army(mockRace, "Test", 1000); |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
48 Unit parent = AddUnitOfTypeToArmy(unitType3, army); |
232
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
49 AddUnitOfTypeToArmy(unitType1, army, parent); |
231
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
50 UnitRequiresNParentModelsForMUnitsRequirement req = new UnitRequiresNParentModelsForMUnitsRequirement(unitType1); |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
51 req.AddUnitTypeRequirement(unitType3); |
232
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
52 Assert_That__FailsAdding(req, unitType1, parent, army, "Army can only contain 1 × " + unitType1.Name + " as sub-units of each " + unitType3.Name + ", would have 2"); |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
53 } |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
54 |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
55 [Test()] |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
56 public void TestAddingTooManyUnitTypesWithParentAndFiveUnitTypeRequiredFails() |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
57 { |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
58 Army army = new Army(mockRace, "Test", 1000); |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
59 Unit parent = AddUnitOfTypeToArmy(unitType2, army); |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
60 AddUnitsOfTypeToArmy(5, unitType1, army, parent); |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
61 UnitRequiresNParentModelsForMUnitsRequirement req = new UnitRequiresNParentModelsForMUnitsRequirement(unitType1); |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
62 req.AddUnitTypeRequirement(unitType2); |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
63 Assert_That__FailsAdding(req, unitType1, parent, army, "Army can only contain 5 × " + unitType1.Name + " as sub-units of each " + unitType2.Name + ", would have 6"); |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
64 } |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
65 |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
66 [Test()] |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
67 public void TestAddingTooManyUnitsAtThreshold() |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
68 { |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
69 Army army = new Army(mockRace, "Test", 1000); |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
70 Unit parent = AddUnitOfTypeToArmy(unitType2, army); |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
71 AddUnitsOfTypeToArmy(4, unitType1, army, parent); |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
72 UnitRequiresNParentModelsForMUnitsRequirement req = new UnitRequiresNParentModelsForMUnitsRequirement(unitType1); |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
73 req.AddUnitTypeRequirement(unitType2); |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
74 Assert_That__PassesAdding(req, unitType1, parent, army); |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
75 AddUnitOfTypeToArmy(unitType1, army, parent); |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
76 Assert_That__FailsAdding(req, unitType1, parent, army, "Army can only contain 5 × " + unitType1.Name + " as sub-units of each " + unitType2.Name + ", would have 6"); |
231
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
77 } |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
78 |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
79 protected override UnitRequiresNParentModelsForMUnitsRequirement CreateRequirement(UnitType requirementOn) |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
80 { |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
81 return new UnitRequiresNParentModelsForMUnitsRequirement(requirementOn); |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
82 } |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
83 |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
84 protected static void Assert_That__PassesAdding(AbstractUnitRequirement<UnitType> req, UnitType unitType, Unit parent, Army army) |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
85 { |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
86 AddingToParentContext ctx = new AddingToParentContext(parent); |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
87 Assert.That(req.AllowsAdding(unitType, army, ctx), Is.EqualTo(Validation.Passed)); |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
88 Assert.That(req.GetAllowsAddingMessage(unitType, army, ctx), Is.Empty); |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
89 Unit unit = CreateUnitOfType(unitType, army); |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
90 Assert.That(req.AllowsAdding(unit, army, ctx), Is.EqualTo(Validation.Passed)); |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
91 Assert.That(req.GetAllowsAddingMessage(unit, army, ctx), Is.Empty); |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
92 } |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
93 |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
94 protected static void Assert_That__AddingNotApplicable(AbstractUnitRequirement<UnitType> req, UnitType unitType, Unit parent, Army army) |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
95 { |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
96 AddingToParentContext ctx = new AddingToParentContext(parent); |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
97 Assert.That(req.AllowsAdding(unitType, army, ctx), Is.EqualTo(Validation.NotApplicable)); |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
98 Assert.That(req.GetAllowsAddingMessage(unitType, army, ctx), Is.Empty); |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
99 Unit unit = CreateUnitOfType(unitType, army); |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
100 Assert.That(req.AllowsAdding(unit, army, ctx), Is.EqualTo(Validation.NotApplicable)); |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
101 Assert.That(req.GetAllowsAddingMessage(unit, army, ctx), Is.Empty); |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
102 } |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
103 |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
104 protected static void Assert_That__FailsAdding(AbstractUnitRequirement<UnitType> req, UnitType unitType, Unit parent, Army army, string message) |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
105 { |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
106 AddingToParentContext ctx = new AddingToParentContext(parent); |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
107 Assert.That(req.AllowsAdding(unitType, army, ctx), Is.EqualTo(Validation.Failed)); |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
108 Assert.That(req.GetAllowsAddingMessage(unitType, army, ctx), Is.EqualTo(message)); |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
109 Unit unit = CreateUnitOfType(unitType, army); |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
110 Assert.That(req.AllowsAdding(unit, army, ctx), Is.EqualTo(Validation.Failed)); |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
111 Assert.That(req.GetAllowsAddingMessage(unit, army, ctx), Is.EqualTo(message)); |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
112 } |
232
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
113 |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
114 private Unit AddUnitOfTypeToArmy(UnitType unitType, Army army, Unit parent) |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
115 { |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
116 Unit child = AddUnitOfTypeToArmy(unitType, army); |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
117 parent.AddContainedUnit(child); |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
118 return child; |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
119 } |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
120 |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
121 private ICollection<Unit> AddUnitsOfTypeToArmy(int count, UnitType unitType, Army army, Unit parent) |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
122 { |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
123 ICollection<Unit> units = new List<Unit>(); |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
124 |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
125 for (int i = 0; i < count; i++) |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
126 { |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
127 units.Add(AddUnitOfTypeToArmy(unitType, army, parent)); |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
128 } |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
129 |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
130 return units; |
fdebdeb52a40
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
231
diff
changeset
|
131 } |
231
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
132 } |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
133 } |
5e03b68dd214
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
134 |