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