comparison API/Objects/Requirement/UnitRequiresAtLeastNUnitsRequirementTest.cs @ 205:d39682a98adf

Re #379: Fix validation of requirements to check for unit * Add unit tests for army object * Update tests that check the message
author IBBoard <dev@ibboard.co.uk>
date Sun, 29 Jan 2012 19:40:19 +0000
parents 8c519a44e699
children 27f163bf884a
comparison
equal deleted inserted replaced
204:ea104de9189e 205:d39682a98adf
275 public void TestAllowsAddingMessageIsCorrectForFailWithTwoOfOneUnitRequired() 275 public void TestAllowsAddingMessageIsCorrectForFailWithTwoOfOneUnitRequired()
276 { 276 {
277 Army army = new Army(mockRace, "Test", 1000); 277 Army army = new Army(mockRace, "Test", 1000);
278 RequiresAtLeastNUnitsRequirement req = new UnitRequiresAtLeastNUnitsRequirement(unitType1); 278 RequiresAtLeastNUnitsRequirement req = new UnitRequiresAtLeastNUnitsRequirement(unitType1);
279 req.AddUnitTypeRequirement(unitType2, 2); 279 req.AddUnitTypeRequirement(unitType2, 2);
280 Assert.That(req.GetAllowsAddingMessage(unitType2, army), Is.EqualTo("Army contains " + unitType1.Name + " and so must contain: 2 × " + unitType2.Name + " (would have 1).")); 280 Assert.That(req.GetAllowsAddingMessage(unitType2, army), Is.EqualTo("Army would contain " + unitType1.Name + " and so must contain: 2 × " + unitType2.Name + " (would have 1)."));
281 } 281 }
282 282
283 [Test] 283 [Test]
284 public void TestAllowsAddingMessageIsCorrectForFailWithTwoUnitsRequired() 284 public void TestAllowsAddingMessageIsCorrectForFailWithTwoUnitsRequired()
285 { 285 {
286 Army army = new Army(mockRace, "Test", 1000); 286 Army army = new Army(mockRace, "Test", 1000);
287 RequiresAtLeastNUnitsRequirement req = new UnitRequiresAtLeastNUnitsRequirement(unitType1); 287 RequiresAtLeastNUnitsRequirement req = new UnitRequiresAtLeastNUnitsRequirement(unitType1);
288 req.AddUnitTypeRequirement(unitType2); 288 req.AddUnitTypeRequirement(unitType2);
289 req.AddUnitTypeRequirement(unitType3); 289 req.AddUnitTypeRequirement(unitType3);
290 Assert.That(req.GetAllowsAddingMessage(unitType2, army), Is.EqualTo("Army contains " + unitType1.Name + " and so must contain: 1 × " + unitType3.Name + " (would have 0).")); 290 Assert.That(req.GetAllowsAddingMessage(unitType2, army), Is.EqualTo("Army would contain " + unitType1.Name + " and so must contain: 1 × " + unitType3.Name + " (would have 0)."));
291 } 291 }
292 292
293 [Test] 293 [Test]
294 public void TestAllowsAddingMessageIsCorrectForFailWithTwoUnitsRequiredOtherUnit() 294 public void TestAllowsAddingMessageIsCorrectForFailWithTwoUnitsRequiredOtherUnit()
295 { 295 {
296 Army army = new Army(mockRace, "Test", 1000); 296 Army army = new Army(mockRace, "Test", 1000);
297 RequiresAtLeastNUnitsRequirement req = new UnitRequiresAtLeastNUnitsRequirement(unitType1); 297 RequiresAtLeastNUnitsRequirement req = new UnitRequiresAtLeastNUnitsRequirement(unitType1);
298 req.AddUnitTypeRequirement(unitType2); 298 req.AddUnitTypeRequirement(unitType2);
299 req.AddUnitTypeRequirement(unitType3); 299 req.AddUnitTypeRequirement(unitType3);
300 Assert.That(req.GetAllowsAddingMessage(unitType3, army), Is.EqualTo("Army contains " + unitType1.Name + " and so must contain: 1 × " + unitType2.Name + " (would have 0).")); 300 Assert.That(req.GetAllowsAddingMessage(unitType3, army), Is.EqualTo("Army would contain " + unitType1.Name + " and so must contain: 1 × " + unitType2.Name + " (would have 0)."));
301 } 301 }
302 302
303 [Test] 303 [Test]
304 public void TestAllowsAddingMessageIsCorrectForFailWithTwoUnitsRequiredWithOneUnit() 304 public void TestAllowsAddingMessageIsCorrectForFailWithTwoUnitsRequiredWithOneUnit()
305 { 305 {
306 Army army = new Army(mockRace, "Test", 1000); 306 Army army = new Army(mockRace, "Test", 1000);
307 AddUnitOfTypeToArmy(unitType2, army); 307 AddUnitOfTypeToArmy(unitType2, army);
308 RequiresAtLeastNUnitsRequirement req = new UnitRequiresAtLeastNUnitsRequirement(unitType1); 308 RequiresAtLeastNUnitsRequirement req = new UnitRequiresAtLeastNUnitsRequirement(unitType1);
309 req.AddUnitTypeRequirement(unitType2); 309 req.AddUnitTypeRequirement(unitType2);
310 req.AddUnitTypeRequirement(unitType3); 310 req.AddUnitTypeRequirement(unitType3);
311 Assert.That(req.GetAllowsAddingMessage(unitType2, army), Is.EqualTo("Army contains " + unitType1.Name + " and so must contain: 1 × " + unitType3.Name + " (would have 0).")); 311 Assert.That(req.GetAllowsAddingMessage(unitType2, army), Is.EqualTo("Army would contain " + unitType1.Name + " and so must contain: 1 × " + unitType3.Name + " (would have 0)."));
312 } 312 }
313 313
314 [Test] 314 [Test]
315 public void TestAllowsAddingMessageIsCorrectForFailWithTwoUnitsRequiredWithOtherUnit() 315 public void TestAllowsAddingMessageIsCorrectForFailWithTwoUnitsRequiredWithOtherUnit()
316 { 316 {
317 Army army = new Army(mockRace, "Test", 1000); 317 Army army = new Army(mockRace, "Test", 1000);
318 AddUnitOfTypeToArmy(unitType3, army); 318 AddUnitOfTypeToArmy(unitType3, army);
319 RequiresAtLeastNUnitsRequirement req = new UnitRequiresAtLeastNUnitsRequirement(unitType1); 319 RequiresAtLeastNUnitsRequirement req = new UnitRequiresAtLeastNUnitsRequirement(unitType1);
320 req.AddUnitTypeRequirement(unitType2); 320 req.AddUnitTypeRequirement(unitType2);
321 req.AddUnitTypeRequirement(unitType3); 321 req.AddUnitTypeRequirement(unitType3);
322 Assert.That(req.GetAllowsAddingMessage(unitType3, army), Is.EqualTo("Army contains " + unitType1.Name + " and so must contain: 1 × " + unitType2.Name + " (would have 0).")); 322 Assert.That(req.GetAllowsAddingMessage(unitType3, army), Is.EqualTo("Army would contain " + unitType1.Name + " and so must contain: 1 × " + unitType2.Name + " (would have 0)."));
323 } 323 }
324 324
325 private static void AddUnitOfTypeToArmy(UnitType unitType, Army army) 325 private static void AddUnitOfTypeToArmy(UnitType unitType, Army army)
326 { 326 {
327 army.AddUnit(CreateUnitOfType(unitType, army)); 327 army.AddUnit(CreateUnitOfType(unitType, army));