Mercurial > repos > IBDev-IBBoard.WarFoundry.API.Tests
annotate API/Objects/Requirement/UnitRequiresNoMoreThanNOfUnitTypeRequirementTest.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 |
---|---|
144
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
1 // This file (RequiresNoMoreThanNOfUnitTypeRequirementTest.cs) is a part of the IBBoard.WarFoundry.API.Tests project and is copyright 2011 IBBoard |
120 | 2 // |
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. | |
4 using System; | |
144
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
5 using NUnit.Framework; |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
6 using IBBoard.WarFoundry.API.Objects.Mock; |
120 | 7 |
8 namespace IBBoard.WarFoundry.API.Objects.Requirement | |
9 { | |
10 [TestFixture()] | |
217
9bf34e88da89
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
214
diff
changeset
|
11 public class UnitRequiresNoMoreThanNOfUnitTypeRequirementTest : AbstractUnitTypeUnitRequirementTest<UnitType, UnitRequiresNoMoreThanNOfUnitTypeRequirement> |
144
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
12 { |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
13 [Test()] |
212
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
14 public void TestAddingUnitTypeWithNoUnitsAndOneUnitTypeRequiredIsAllowed() |
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
15 { |
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
16 Army army = new Army(mockRace, "Test", 1000); |
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
17 UnitRequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
18 req.AddUnitTypeRequirement(unitType2); |
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
19 Assert_That__PassesAdding(req, unitType1, army); |
144
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
20 } |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
21 |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
22 [Test()] |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
23 public void TestAddingUnitTypeWithOneUnitAndOneUnitTypeRequiredIsNotAllowed() |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
24 { |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
25 Army army = new Army(mockRace, "Test", 1000); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
26 AddUnitOfTypeToArmy(unitType2, army); |
208
c323770e61c2
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
207
diff
changeset
|
27 UnitRequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
144
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
28 req.AddUnitTypeRequirement(unitType2); |
212
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
29 Assert_That__FailsAdding(req, unitType1, army, "Army cannot contain more than: 0 × " + unitType2.Name + " (would have 1)."); |
144
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
30 } |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
31 |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
32 [Test()] |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
33 public void TestAddingUnitTypeSetsLimit() |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
34 { |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
35 Army army = new Army(mockRace, "Test", 1000); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
36 AddUnitOfTypeToArmy(unitType2, army); |
208
c323770e61c2
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
207
diff
changeset
|
37 UnitRequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
144
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
38 req.AddUnitTypeRequirement(unitType2, 1); |
212
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
39 Assert_That__PassesAdding(req, unitType1, army); |
144
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
40 } |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
41 |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
42 [Test()] |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
43 public void TestAddingUnitTypeSetsLimitForFailure() |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
44 { |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
45 Army army = new Army(mockRace, "Test", 1000); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
46 AddUnitOfTypeToArmy(unitType2, army); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
47 AddUnitOfTypeToArmy(unitType2, army); |
208
c323770e61c2
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
207
diff
changeset
|
48 UnitRequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
144
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
49 req.AddUnitTypeRequirement(unitType2, 1); |
212
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
50 Assert_That__FailsAdding(req, unitType1, army, "Army cannot contain more than: 1 × " + unitType2.Name + " (would have 2)."); |
144
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
51 } |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
52 |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
53 [Test()] |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
54 public void TestAddingUnitTriggersFailure() |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
55 { |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
56 Army army = new Army(mockRace, "Test", 1000); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
57 AddUnitOfTypeToArmy(unitType2, army); |
208
c323770e61c2
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
207
diff
changeset
|
58 UnitRequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
144
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
59 req.AddUnitTypeRequirement(unitType2, 1); |
212
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
60 Assert_That__PassesAdding(req, unitType1, army); |
144
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
61 AddUnitOfTypeToArmy(unitType2, army); |
212
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
62 Assert_That__FailsAdding(req, unitType1, army, "Army cannot contain more than: 1 × " + unitType2.Name + " (would have 2)."); |
144
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
63 } |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
64 |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
65 [Test()] |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
66 public void TestAddingUnitTypeDefaultsToNoMoreThanZero() |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
67 { |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
68 Army army = new Army(mockRace, "Test", 1000); |
208
c323770e61c2
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
207
diff
changeset
|
69 UnitRequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
144
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
70 req.AddUnitTypeRequirement(unitType2); |
212
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
71 Assert_That__PassesAdding(req, unitType1, army); |
144
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
72 AddUnitOfTypeToArmy(unitType2, army); |
212
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
73 Assert_That__FailsAdding(req, unitType1, army, "Army cannot contain more than: 0 × " + unitType2.Name + " (would have 1)."); |
144
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
74 } |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
75 |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
76 [Test] |
212
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
77 public void TestRequirementNotApplicableWhenAddingWithLimitedUnitNotIncluded() |
144
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
78 { |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
79 Army army = new Army(mockRace, "Test", 1000); |
208
c323770e61c2
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
207
diff
changeset
|
80 UnitRequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
144
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
81 req.AddUnitTypeRequirement(unitType2); |
212
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
82 Assert_That__AddingNotApplicable(req, unitType3, army); |
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
83 Assert_That__AddingNotApplicable(req, unitType2, army); |
144
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
84 } |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
85 |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
86 [Test] |
212
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
87 public void TestRequirementNotApplicableWhenAddingUnrelatedType() |
144
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
88 { |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
89 Army army = new Army(mockRace, "Test", 1000); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
90 AddUnitOfTypeToArmy(unitType1, army); |
208
c323770e61c2
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
207
diff
changeset
|
91 UnitRequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
144
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
92 req.AddUnitTypeRequirement(unitType2); |
212
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
93 Assert_That__AddingNotApplicable(req, unitType3, army); |
144
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
94 AddUnitOfTypeToArmy(unitType2, army); |
212
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
95 Assert_That__AddingNotApplicable(req, unitType3, army); |
144
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
96 } |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
97 |
212
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
98 [Test()] |
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
99 public void TestAddingRequirementUnitTriggersFailure() |
146
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
100 { |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
101 Army army = new Army(mockRace, "Test", 1000); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
102 AddUnitOfTypeToArmy(unitType1, army); |
208
c323770e61c2
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
207
diff
changeset
|
103 UnitRequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
212
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
104 req.AddUnitTypeRequirement(unitType2, 1); |
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
105 Assert_That__PassesAdding(req, unitType2, army); |
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
106 AddUnitOfTypeToArmy(unitType2, army); |
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
107 Assert_That__FailsAdding(req, unitType2, army, "Army cannot contain more than: 1 × " + unitType2.Name + " (would have 2)."); |
146
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
108 } |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
109 |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
110 [Test] |
212
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
111 public void TestAddingRequirementUnitFailsWithTwoUnitTypesProhibited() |
146
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
112 { |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
113 Army army = new Army(mockRace, "Test", 1000); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
114 AddUnitOfTypeToArmy(unitType1, army); |
208
c323770e61c2
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
207
diff
changeset
|
115 UnitRequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
146
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
116 req.AddUnitTypeRequirement(unitType2); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
117 req.AddUnitTypeRequirement(unitType3); |
212
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
118 Assert_That__FailsAdding(req, unitType2, army, "Army cannot contain more than: 0 × " + unitType2.Name + " (would have 1)."); |
146
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
119 } |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
120 |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
121 [Test] |
212
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
122 public void TestAddingOtherRequirementUnitFailsWithTwoUnitTypesProhibited() |
146
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
123 { |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
124 Army army = new Army(mockRace, "Test", 1000); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
125 AddUnitOfTypeToArmy(unitType1, army); |
208
c323770e61c2
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
207
diff
changeset
|
126 UnitRequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
146
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
127 req.AddUnitTypeRequirement(unitType2); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
128 req.AddUnitTypeRequirement(unitType3); |
212
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
129 Assert_That__FailsAdding(req, unitType3, army, "Army cannot contain more than: 0 × " + unitType3.Name + " (would have 1)."); |
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
130 } |
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
131 |
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
132 [Test] |
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
133 public void TestAddingRequirementUnitFailsWithTwoUnitTypesProhibitedAndOneUnitTypeAlreadyInArmy() |
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
134 { |
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
135 Army army = new Army(mockRace, "Test", 1000); |
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
136 AddUnitOfTypeToArmy(unitType1, army); |
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
137 AddUnitOfTypeToArmy(unitType2, army); |
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
138 UnitRequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
139 req.AddUnitTypeRequirement(unitType2); |
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
140 req.AddUnitTypeRequirement(unitType3); |
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
141 Assert_That__FailsAdding(req, unitType3, army, "Army cannot contain more than: 0 × " + unitType2.Name + " (would have 1); 0 × " + unitType3.Name + " (would have 1)."); |
146
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
142 } |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
143 |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
144 [Test] |
212
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
145 public void TestAddingRequirementUnitFailsWithTwoUnitTypesProhibitedAndOtherUnitTypeAlreadyInArmy() |
146
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
146 { |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
147 Army army = new Army(mockRace, "Test", 1000); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
148 AddUnitOfTypeToArmy(unitType1, army); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
149 AddUnitOfTypeToArmy(unitType3, army); |
208
c323770e61c2
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
207
diff
changeset
|
150 UnitRequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
146
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
151 req.AddUnitTypeRequirement(unitType2); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
152 req.AddUnitTypeRequirement(unitType3); |
212
325943cb1db0
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
208
diff
changeset
|
153 Assert_That__FailsAdding(req, unitType2, army, "Army cannot contain more than: 0 × " + unitType2.Name + " (would have 1); 0 × " + unitType3.Name + " (would have 1)."); |
120 | 154 } |
213
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
155 |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
156 [Test()] |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
157 public void TestValidatingWithNoUnitsAndOneUnitTypeRequiredIsAllowed() |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
158 { |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
159 Army army = new Army(mockRace, "Test", 1000); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
160 AddUnitOfTypeToArmy(unitType1, army); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
161 UnitRequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
162 req.AddUnitTypeRequirement(unitType2); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
163 Assert_That__ValidationPasses(req, army); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
164 } |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
165 |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
166 [Test()] |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
167 public void TestValidatingWithOneUnitAndOneUnitTypeRequiredIsNotAllowed() |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
168 { |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
169 Army army = new Army(mockRace, "Test", 1000); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
170 AddUnitOfTypeToArmy(unitType2, army); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
171 AddUnitOfTypeToArmy(unitType1, army); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
172 UnitRequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
173 req.AddUnitTypeRequirement(unitType2); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
174 Assert_That__ValidationFails(req, army, "Army cannot contain more than: 0 × " + unitType2.Name + " (have 1)."); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
175 } |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
176 |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
177 [Test()] |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
178 public void TestValidatingUnitTypeSetsLimit() |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
179 { |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
180 Army army = new Army(mockRace, "Test", 1000); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
181 AddUnitOfTypeToArmy(unitType1, army); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
182 AddUnitOfTypeToArmy(unitType2, army); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
183 UnitRequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
184 req.AddUnitTypeRequirement(unitType2, 1); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
185 Assert_That__ValidationPasses(req, army); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
186 } |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
187 |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
188 [Test()] |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
189 public void TestSetsLimitForValidationFailure() |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
190 { |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
191 Army army = new Army(mockRace, "Test", 1000); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
192 AddUnitOfTypeToArmy(unitType1, army); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
193 AddUnitOfTypeToArmy(unitType2, army); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
194 AddUnitOfTypeToArmy(unitType2, army); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
195 UnitRequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
196 req.AddUnitTypeRequirement(unitType2, 1); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
197 Assert_That__ValidationFails(req, army, "Army cannot contain more than: 1 × " + unitType2.Name + " (have 2)."); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
198 } |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
199 |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
200 [Test()] |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
201 public void TestAddingUnitTriggersValidationFailure() |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
202 { |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
203 Army army = new Army(mockRace, "Test", 1000); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
204 AddUnitOfTypeToArmy(unitType1, army); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
205 AddUnitOfTypeToArmy(unitType2, army); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
206 UnitRequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
207 req.AddUnitTypeRequirement(unitType2, 1); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
208 Assert_That__ValidationPasses(req, army); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
209 AddUnitOfTypeToArmy(unitType2, army); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
210 Assert_That__ValidationFails(req, army, "Army cannot contain more than: 1 × " + unitType2.Name + " (have 2)."); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
211 } |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
212 |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
213 [Test()] |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
214 public void TestValidationUnitTypeDefaultsToNoMoreThanZero() |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
215 { |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
216 Army army = new Army(mockRace, "Test", 1000); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
217 AddUnitOfTypeToArmy(unitType1, army); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
218 UnitRequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
219 req.AddUnitTypeRequirement(unitType2); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
220 Assert_That__ValidationPasses(req, army); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
221 AddUnitOfTypeToArmy(unitType2, army); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
222 Assert_That__ValidationFails(req, army, "Army cannot contain more than: 0 × " + unitType2.Name + " (have 1)."); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
223 } |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
224 |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
225 [Test] |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
226 public void TestRequirementValidationNotApplicableWhenAddingUnrelatedTypes() |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
227 { |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
228 Army army = new Army(mockRace, "Test", 1000); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
229 UnitRequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
230 req.AddUnitTypeRequirement(unitType2); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
231 AddUnitOfTypeToArmy(unitType3, army); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
232 Assert_That__NotApplicable(req, army); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
233 AddUnitOfTypeToArmy(unitType2, army); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
234 Assert_That__NotApplicable(req, army); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
235 } |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
236 |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
237 [Test()] |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
238 public void TestAddingRequirementUnitTriggersValidationFailure() |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
239 { |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
240 Army army = new Army(mockRace, "Test", 1000); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
241 AddUnitOfTypeToArmy(unitType1, army); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
242 UnitRequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
243 req.AddUnitTypeRequirement(unitType2, 1); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
244 AddUnitOfTypeToArmy(unitType2, army); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
245 Assert_That__ValidationPasses(req, army); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
246 AddUnitOfTypeToArmy(unitType2, army); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
247 Assert_That__ValidationFails(req, army, "Army cannot contain more than: 1 × " + unitType2.Name + " (have 2)."); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
248 } |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
249 |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
250 [Test] |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
251 public void TestValidationFailsWithTwoUnitTypesProhibitedAndOneUnitTypeInArmy() |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
252 { |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
253 Army army = new Army(mockRace, "Test", 1000); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
254 AddUnitOfTypeToArmy(unitType1, army); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
255 AddUnitOfTypeToArmy(unitType2, army); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
256 UnitRequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
257 req.AddUnitTypeRequirement(unitType2); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
258 req.AddUnitTypeRequirement(unitType3); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
259 Assert_That__ValidationFails(req, army, "Army cannot contain more than: 0 × " + unitType2.Name + " (have 1)."); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
260 } |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
261 |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
262 [Test] |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
263 public void TestValidationFailsWithTwoUnitTypesProhibitedAndOneOfOtherUnitTypeInArmy() |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
264 { |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
265 Army army = new Army(mockRace, "Test", 1000); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
266 AddUnitOfTypeToArmy(unitType1, army); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
267 AddUnitOfTypeToArmy(unitType3, army); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
268 UnitRequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
269 req.AddUnitTypeRequirement(unitType2); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
270 req.AddUnitTypeRequirement(unitType3); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
271 Assert_That__ValidationFails(req, army, "Army cannot contain more than: 0 × " + unitType3.Name + " (have 1)."); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
272 } |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
273 |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
274 [Test] |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
275 public void TestValidationFailsWithTwoUnitTypesProhibitedAndOneUnitTypeAlreadyInArmy() |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
276 { |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
277 Army army = new Army(mockRace, "Test", 1000); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
278 AddUnitOfTypeToArmy(unitType1, army); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
279 AddUnitOfTypeToArmy(unitType2, army); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
280 AddUnitOfTypeToArmy(unitType3, army); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
281 UnitRequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
282 req.AddUnitTypeRequirement(unitType2); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
283 req.AddUnitTypeRequirement(unitType3); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
284 Assert_That__ValidationFails(req, army, "Army cannot contain more than: 0 × " + unitType2.Name + " (have 1); 0 × " + unitType3.Name + " (have 1)."); |
0416df2ab39b
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
212
diff
changeset
|
285 } |
217
9bf34e88da89
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
214
diff
changeset
|
286 |
9bf34e88da89
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
214
diff
changeset
|
287 protected override UnitRequiresNoMoreThanNOfUnitTypeRequirement CreateRequirement(UnitType requirementOn) |
9bf34e88da89
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
214
diff
changeset
|
288 { |
9bf34e88da89
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
214
diff
changeset
|
289 return new UnitRequiresNoMoreThanNOfUnitTypeRequirement(requirementOn); |
9bf34e88da89
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
214
diff
changeset
|
290 } |
120 | 291 } |
292 } | |
293 |