comparison 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
comparison
equal deleted inserted replaced
145:0d40d80226b8 146:8c519a44e699
171 req.AddUnitTypeRequirement(unitType1); 171 req.AddUnitTypeRequirement(unitType1);
172 req.AddUnitTypeRequirement(unitType2); 172 req.AddUnitTypeRequirement(unitType2);
173 Assert.That(req.GetValidationMessage(army), Is.EqualTo("Army cannot contain more than: 0 × " + unitType2.Name + " (have 1).")); 173 Assert.That(req.GetValidationMessage(army), Is.EqualTo("Army cannot contain more than: 0 × " + unitType2.Name + " (have 1)."));
174 } 174 }
175 175
176 [Test]
177 public void TestAllowsAddMessageIsBlankForPass()
178 {
179 Army army = new Army(mockRace, "Test", 1000);
180 RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(unitType1);
181 Assert.That(req.GetAllowsAddingMessage(unitType2, army), Is.Empty);
182 }
183
184 [Test]
185 public void TestAllowsAddMessageIsCorrectForFailWithOneUnitProhibited()
186 {
187 Army army = new Army(mockRace, "Test", 1000);
188 RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(unitType1);
189 Assert.That(req.GetAllowsAddingMessage(unitType1, army), Is.EqualTo("Army cannot contain more than: 0 × " + unitType1.Name + " (would have 1)."));
190 }
191
192 [Test]
193 public void TestAllowsAddMessageIsCorrectForFailWithTwoOfOneUnitLimit()
194 {
195 Army army = new Army(mockRace, "Test", 1000);
196 AddUnitOfTypeToArmy(unitType1, army);
197 AddUnitOfTypeToArmy(unitType1, army);
198 RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement();
199 req.AddUnitTypeRequirement(unitType1, 2);
200 Assert.That(req.GetAllowsAddingMessage(unitType1, army), Is.EqualTo("Army cannot contain more than: 2 × " + unitType1.Name + " (would have 3)."));
201 }
202
203 [Test]
204 public void TestAllowsAddMessageIsCorrectForFailWithTwoUnitsProhibited()
205 {
206 Army army = new Army(mockRace, "Test", 1000);
207 RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement();
208 req.AddUnitTypeRequirement(unitType1);
209 req.AddUnitTypeRequirement(unitType2);
210 Assert.That(req.GetAllowsAddingMessage(unitType1, army), Is.EqualTo("Army cannot contain more than: 0 × " + unitType1.Name + " (would have 1)."));
211 }
212
213 [Test]
214 public void TestAllowsAddMessageIsCorrectForFailWithTwoUnitsProhibitedAndOneUnitInArmy()
215 {
216 Army army = new Army(mockRace, "Test", 1000);
217 AddUnitOfTypeToArmy(unitType1, army);
218 RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement();
219 req.AddUnitTypeRequirement(unitType1);
220 req.AddUnitTypeRequirement(unitType2);
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)."));
222 }
223
224 [Test]
225 public void TestAllowsAddMessageIsCorrectForFailWithTwoUnitsProhibitedAndOtherUnitInArmy()
226 {
227 Army army = new Army(mockRace, "Test", 1000);
228 AddUnitOfTypeToArmy(unitType2, army);
229 RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement();
230 req.AddUnitTypeRequirement(unitType1);
231 req.AddUnitTypeRequirement(unitType2);
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)."));
233 }
234
176 private static void AddUnitOfTypeToArmy(UnitType unitType, Army army) 235 private static void AddUnitOfTypeToArmy(UnitType unitType, Army army)
177 { 236 {
178 army.AddUnit(CreateUnitOfType(unitType, army)); 237 army.AddUnit(CreateUnitOfType(unitType, army));
179 } 238 }
180 239