Mercurial > repos > IBBoard.WarFoundry.API.Tests
annotate API/Objects/Requirement/RequiresNoMoreThanNOfUnitTypeRequirementTest.cs @ 146:8c519a44e699
Re #345: Add failure message to requirements
* Add testing of failure messages for "allows adding"
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sun, 01 May 2011 19:17:11 +0000 |
parents | eced294e82f2 |
children | c323770e61c2 |
rev | line source |
---|---|
139 | 1 // This file (RequiresNoMoreThanNOfUnitTypeRequirementTest.cs) is a part of the IBBoard.WarFoundry.API.Tests project and is copyright 2011 IBBoard |
111 | 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; | |
139 | 5 using NUnit.Framework; |
6 using IBBoard.WarFoundry.API.Objects.Mock; | |
111 | 7 using NUnit.Framework.SyntaxHelpers; |
139 | 8 using System.Reflection; |
9 using IBBoard.NUnit; | |
10 using IBBoard.WarFoundry.API.Factories; | |
111 | 11 |
12 namespace IBBoard.WarFoundry.API.Objects.Requirement | |
13 { | |
14 [TestFixture()] | |
139 | 15 public class RequiresNoMoreThanNOfUnitTypeRequirementTest : AbstractEqualityTest<RequiresNoMoreThanNOfUnitTypeRequirement> |
16 { | |
17 private MockRace mockRace; | |
18 private UnitType unitType1; | |
19 private UnitType unitType2; | |
20 private UnitType unitType3; | |
21 | |
22 [TestFixtureSetUp()] | |
23 public void SetupRace() | |
24 { | |
25 mockRace = new MockRace(); | |
26 unitType1 = new MockUnitType("type1", "Unit Type 1"); | |
27 mockRace.AddUnitType(unitType1); | |
28 unitType2 = new MockUnitType("type2", "Unit Type 2"); | |
29 mockRace.AddUnitType(unitType2); | |
30 unitType3 = new MockUnitType("type3", "Unit Type 3"); | |
31 mockRace.AddUnitType(unitType3); | |
32 } | |
33 | |
34 [Test()] | |
35 public void TestAddingUnitWithNoUnitsAndOneUnitTypeRequiredIsAllowed() | |
36 { | |
37 Army army = new Army(mockRace, "Test", 1000); | |
38 Unit unit = CreateUnitOfType(unitType1, army); | |
39 RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(unitType2); | |
40 Assert.That(req.AllowsAdding(unit, army), Is.EqualTo(Validation.Passed)); | |
41 } | |
42 | |
43 [Test()] | |
44 public void TestAddingUnitWithOneUnitAndOneUnitTypeRequiredIsNotAllowed() | |
45 { | |
46 Army army = new Army(mockRace, "Test", 1000); | |
47 AddUnitOfTypeToArmy(unitType2, army); | |
48 Unit unit = CreateUnitOfType(unitType1, army); | |
49 RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(unitType2); | |
50 Assert.That(req.AllowsAdding(unit, army), Is.EqualTo(Validation.Failed)); | |
51 } | |
52 | |
53 [Test()] | |
54 public void TestAddingUnitTypeWithNoUnitsAndOneUnitTypeRequiredIsAllowed() | |
55 { | |
56 Army army = new Army(mockRace, "Test", 1000); | |
57 RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(unitType2); | |
58 Assert.That(req.AllowsAdding(unitType1, army), Is.EqualTo(Validation.Passed)); | |
59 } | |
60 | |
61 [Test()] | |
62 public void TestAddingUnitTypeWithOneUnitAndOneUnitTypeRequiredIsNotAllowed() | |
63 { | |
64 Army army = new Army(mockRace, "Test", 1000); | |
65 AddUnitOfTypeToArmy(unitType2, army); | |
66 RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(unitType2); | |
67 Assert.That(req.AllowsAdding(unitType1, army), Is.EqualTo(Validation.Failed)); | |
68 } | |
69 | |
70 [Test()] | |
71 public void TestAddingUnitTypeSetsLimit() | |
72 { | |
73 Army army = new Army(mockRace, "Test", 1000); | |
74 AddUnitOfTypeToArmy(unitType2, army); | |
75 RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(); | |
76 req.AddUnitTypeRequirement(unitType2, 1); | |
77 Assert.That(req.AllowsAdding(unitType1, army), Is.EqualTo(Validation.Passed)); | |
78 } | |
79 | |
80 [Test()] | |
81 public void TestAddingUnitTypeSetsLimitForFailure() | |
82 { | |
83 Army army = new Army(mockRace, "Test", 1000); | |
84 AddUnitOfTypeToArmy(unitType2, army); | |
85 AddUnitOfTypeToArmy(unitType2, army); | |
86 RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(); | |
87 req.AddUnitTypeRequirement(unitType2, 1); | |
88 Assert.That(req.AllowsAdding(unitType1, army), Is.EqualTo(Validation.Failed)); | |
89 } | |
90 | |
91 [Test()] | |
92 public void TestAddingUnitTypeDefaultsToNoMoreThanZero() | |
93 { | |
94 Army army = new Army(mockRace, "Test", 1000); | |
95 RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(); | |
96 req.AddUnitTypeRequirement(unitType2); | |
97 Assert.That(req.AllowsAdding(unitType1, army), Is.EqualTo(Validation.Passed)); | |
98 AddUnitOfTypeToArmy(unitType2, army); | |
99 Assert.That(req.AllowsAdding(unitType1, army), Is.EqualTo(Validation.Failed)); | |
100 } | |
101 | |
102 [Test] | |
103 public void TestRequirementBecomesInvalidWhenProhibitedUnitsChange() | |
104 { | |
105 Army army = new Army(mockRace, "Test", 1000); | |
106 RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(); | |
107 req.AddUnitTypeRequirement(unitType2); | |
108 Assert.That(req.ValidatesArmy(army), Is.EqualTo(Validation.Passed)); | |
109 AddUnitOfTypeToArmy(unitType2, army); | |
110 Assert.That(req.ValidatesArmy(army), Is.EqualTo(Validation.Failed)); | |
111 } | |
112 | |
144
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
113 [Test] |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
114 public void TestValidationMessageIsBlankForPass() |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
115 { |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
116 Army army = new Army(mockRace, "Test", 1000); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
117 RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
118 Assert.That(req.GetValidationMessage(army), Is.Empty); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
119 } |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
120 |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
121 [Test] |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
122 public void TestValidationMessageIsCorrectForFailWithOneUnitProhibited() |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
123 { |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
124 Army army = new Army(mockRace, "Test", 1000); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
125 AddUnitOfTypeToArmy(unitType1, army); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
126 RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
127 Assert.That(req.GetValidationMessage(army), Is.EqualTo("Army cannot contain more than: 0 × " + unitType1.Name + " (have 1).")); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
128 } |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
129 |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
130 [Test] |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
131 public void TestValidationMessageIsCorrectForFailWithTwoOfOneUnitLimit() |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
132 { |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
133 Army army = new Army(mockRace, "Test", 1000); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
134 AddUnitOfTypeToArmy(unitType1, army); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
135 AddUnitOfTypeToArmy(unitType1, army); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
136 AddUnitOfTypeToArmy(unitType1, army); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
137 RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
138 req.AddUnitTypeRequirement(unitType1, 2); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
139 Assert.That(req.GetValidationMessage(army), Is.EqualTo("Army cannot contain more than: 2 × " + unitType1.Name + " (have 3).")); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
140 } |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
141 |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
142 [Test] |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
143 public void TestValidationMessageIsCorrectForFailWithTwoUnitsProhibited() |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
144 { |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
145 Army army = new Army(mockRace, "Test", 1000); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
146 AddUnitOfTypeToArmy(unitType1, army); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
147 AddUnitOfTypeToArmy(unitType2, army); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
148 RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
149 req.AddUnitTypeRequirement(unitType1); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
150 req.AddUnitTypeRequirement(unitType2); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
151 Assert.That(req.GetValidationMessage(army), Is.EqualTo("Army cannot contain more than: 0 × " + unitType1.Name + " (have 1); 0 × " + unitType2.Name + " (have 1).")); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
152 } |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
153 |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
154 [Test] |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
155 public void TestValidationMessageIsCorrectForFailWithTwoUnitsProhibitedAndOneUnitInArmy() |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
156 { |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
157 Army army = new Army(mockRace, "Test", 1000); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
158 AddUnitOfTypeToArmy(unitType1, army); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
159 RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
160 req.AddUnitTypeRequirement(unitType1); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
161 req.AddUnitTypeRequirement(unitType2); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
162 Assert.That(req.GetValidationMessage(army), Is.EqualTo("Army cannot contain more than: 0 × " + unitType1.Name + " (have 1).")); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
163 } |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
164 |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
165 [Test] |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
166 public void TestValidationMessageIsCorrectForFailWithTwoUnitsProhibitedAndOtherUnitInArmy() |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
167 { |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
168 Army army = new Army(mockRace, "Test", 1000); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
169 AddUnitOfTypeToArmy(unitType2, army); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
170 RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
171 req.AddUnitTypeRequirement(unitType1); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
172 req.AddUnitTypeRequirement(unitType2); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
173 Assert.That(req.GetValidationMessage(army), Is.EqualTo("Army cannot contain more than: 0 × " + unitType2.Name + " (have 1).")); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
174 } |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
140
diff
changeset
|
175 |
146
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
176 [Test] |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
177 public void TestAllowsAddMessageIsBlankForPass() |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
178 { |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
179 Army army = new Army(mockRace, "Test", 1000); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
180 RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
181 Assert.That(req.GetAllowsAddingMessage(unitType2, army), Is.Empty); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
182 } |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
183 |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
184 [Test] |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
185 public void TestAllowsAddMessageIsCorrectForFailWithOneUnitProhibited() |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
186 { |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
187 Army army = new Army(mockRace, "Test", 1000); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
188 RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
189 Assert.That(req.GetAllowsAddingMessage(unitType1, army), Is.EqualTo("Army cannot contain more than: 0 × " + unitType1.Name + " (would have 1).")); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
190 } |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
191 |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
192 [Test] |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
193 public void TestAllowsAddMessageIsCorrectForFailWithTwoOfOneUnitLimit() |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
194 { |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
195 Army army = new Army(mockRace, "Test", 1000); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
196 AddUnitOfTypeToArmy(unitType1, army); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
197 AddUnitOfTypeToArmy(unitType1, army); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
198 RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
199 req.AddUnitTypeRequirement(unitType1, 2); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
200 Assert.That(req.GetAllowsAddingMessage(unitType1, army), Is.EqualTo("Army cannot contain more than: 2 × " + unitType1.Name + " (would have 3).")); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
201 } |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
202 |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
203 [Test] |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
204 public void TestAllowsAddMessageIsCorrectForFailWithTwoUnitsProhibited() |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
205 { |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
206 Army army = new Army(mockRace, "Test", 1000); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
207 RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
208 req.AddUnitTypeRequirement(unitType1); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
209 req.AddUnitTypeRequirement(unitType2); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
210 Assert.That(req.GetAllowsAddingMessage(unitType1, army), Is.EqualTo("Army cannot contain more than: 0 × " + unitType1.Name + " (would have 1).")); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
211 } |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
212 |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
213 [Test] |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
214 public void TestAllowsAddMessageIsCorrectForFailWithTwoUnitsProhibitedAndOneUnitInArmy() |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
215 { |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
216 Army army = new Army(mockRace, "Test", 1000); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
217 AddUnitOfTypeToArmy(unitType1, army); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
218 RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
219 req.AddUnitTypeRequirement(unitType1); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
220 req.AddUnitTypeRequirement(unitType2); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
221 Assert.That(req.GetAllowsAddingMessage(unitType2, army), Is.EqualTo("Army cannot contain more than: 0 × " + unitType1.Name + " (would have 1); 0 × " + unitType2.Name + " (would have 1).")); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
222 } |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
223 |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
224 [Test] |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
225 public void TestAllowsAddMessageIsCorrectForFailWithTwoUnitsProhibitedAndOtherUnitInArmy() |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
226 { |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
227 Army army = new Army(mockRace, "Test", 1000); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
228 AddUnitOfTypeToArmy(unitType2, army); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
229 RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
230 req.AddUnitTypeRequirement(unitType1); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
231 req.AddUnitTypeRequirement(unitType2); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
232 Assert.That(req.GetAllowsAddingMessage(unitType1, army), Is.EqualTo("Army cannot contain more than: 0 × " + unitType1.Name + " (would have 1); 0 × " + unitType2.Name + " (would have 1).")); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
233 } |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
234 |
139 | 235 private static void AddUnitOfTypeToArmy(UnitType unitType, Army army) |
236 { | |
237 army.AddUnit(CreateUnitOfType(unitType, army)); | |
238 } | |
239 | |
240 private static Unit CreateUnitOfType(UnitType unitType, Army army) | |
241 { | |
242 return new Unit(unitType, army.GetCategory(unitType.MainCategory)); | |
243 } | |
244 | |
245 public override RequiresNoMoreThanNOfUnitTypeRequirement GetObject () | |
246 { | |
247 RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(); | |
248 req.AddUnitTypeRequirement(unitType1, 2); | |
249 return req; | |
250 } | |
251 | |
252 public override RequiresNoMoreThanNOfUnitTypeRequirement GetSameObject () | |
253 { | |
254 RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(); | |
255 req.AddUnitTypeRequirement(unitType1, 2); | |
256 return req; | |
257 } | |
258 | |
259 public override RequiresNoMoreThanNOfUnitTypeRequirement GetDifferentObject () | |
260 { | |
261 RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(); | |
262 DummyWarFoundryFactory factory = new DummyWarFoundryFactory(); | |
263 GameSystem gameSystem = new GameSystem("system", "system", factory); | |
264 Race race = new Race("race", "race", gameSystem, factory); | |
265 req.AddUnitTypeRequirement(new UnitType("id2", "Type 2", race), 2); | |
266 return req; | |
111 | 267 } |
268 } | |
269 } | |
270 |