comparison API/Objects/Requirement/UnitRequiresNoMoreThanNOfUnitTypeRequirementTest.cs @ 206:78ba834cb1f7

Re #379: Fix validation of requirements to check for unit * Fix expected text for "Requires no more than", which has a slightly different format
author IBBoard <dev@ibboard.co.uk>
date Sun, 29 Jan 2012 20:03:44 +0000
parents 8c519a44e699
children 27f163bf884a
comparison
equal deleted inserted replaced
205:d39682a98adf 206:78ba834cb1f7
228 { 228 {
229 Army army = new Army(mockRace, "Test", 1000); 229 Army army = new Army(mockRace, "Test", 1000);
230 AddUnitOfTypeToArmy(unitType1, army); 230 AddUnitOfTypeToArmy(unitType1, army);
231 RequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); 231 RequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1);
232 req.AddUnitTypeRequirement(unitType2); 232 req.AddUnitTypeRequirement(unitType2);
233 Assert.That(req.GetAllowsAddingMessage(unitType2, army), Is.EqualTo("Army contains " + unitType1.Name + " and so cannot contain more than: 0 × " + unitType2.Name + " (would have 1).")); 233 Assert.That(req.GetAllowsAddingMessage(unitType2, army), Is.EqualTo("Army would contain " + unitType1.Name + " and so cannot contain more than: 0 × " + unitType2.Name + " (would have 1)."));
234 } 234 }
235 235
236 [Test] 236 [Test]
237 public void TestAllowsAddMessageIsCorrectForFailWithTwoOfOneUnitLimit() 237 public void TestAllowsAddMessageIsCorrectForFailWithTwoOfOneUnitLimit()
238 { 238 {
240 AddUnitOfTypeToArmy(unitType1, army); 240 AddUnitOfTypeToArmy(unitType1, army);
241 AddUnitOfTypeToArmy(unitType2, army); 241 AddUnitOfTypeToArmy(unitType2, army);
242 AddUnitOfTypeToArmy(unitType2, army); 242 AddUnitOfTypeToArmy(unitType2, army);
243 RequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); 243 RequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1);
244 req.AddUnitTypeRequirement(unitType2, 2); 244 req.AddUnitTypeRequirement(unitType2, 2);
245 Assert.That(req.GetAllowsAddingMessage(unitType2, army), Is.EqualTo("Army contains " + unitType1.Name + " and so cannot contain more than: 2 × " + unitType2.Name + " (would have 3).")); 245 Assert.That(req.GetAllowsAddingMessage(unitType2, army), Is.EqualTo("Army would contain " + unitType1.Name + " and so cannot contain more than: 2 × " + unitType2.Name + " (would have 3)."));
246 } 246 }
247 247
248 [Test] 248 [Test]
249 public void TestAllowsAddMessageIsCorrectForFailWithTwoUnitsProhibited() 249 public void TestAllowsAddMessageIsCorrectForFailWithTwoUnitsProhibited()
250 { 250 {
251 Army army = new Army(mockRace, "Test", 1000); 251 Army army = new Army(mockRace, "Test", 1000);
252 AddUnitOfTypeToArmy(unitType1, army); 252 AddUnitOfTypeToArmy(unitType1, army);
253 RequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); 253 RequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1);
254 req.AddUnitTypeRequirement(unitType2); 254 req.AddUnitTypeRequirement(unitType2);
255 req.AddUnitTypeRequirement(unitType3); 255 req.AddUnitTypeRequirement(unitType3);
256 Assert.That(req.GetAllowsAddingMessage(unitType2, army), Is.EqualTo("Army contains " + unitType1.Name + " and so cannot contain more than: 0 × " + unitType2.Name + " (would have 1).")); 256 Assert.That(req.GetAllowsAddingMessage(unitType2, army), Is.EqualTo("Army would contain " + unitType1.Name + " and so cannot contain more than: 0 × " + unitType2.Name + " (would have 1)."));
257 } 257 }
258 258
259 [Test] 259 [Test]
260 public void TestAllowsAddMessageIsCorrectForFailWithTwoUnitsProhibitedAndOneUnitInArmy() 260 public void TestAllowsAddMessageIsCorrectForFailWithTwoUnitsProhibitedAndOneUnitInArmy()
261 { 261 {
263 AddUnitOfTypeToArmy(unitType1, army); 263 AddUnitOfTypeToArmy(unitType1, army);
264 AddUnitOfTypeToArmy(unitType2, army); 264 AddUnitOfTypeToArmy(unitType2, army);
265 RequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); 265 RequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1);
266 req.AddUnitTypeRequirement(unitType2); 266 req.AddUnitTypeRequirement(unitType2);
267 req.AddUnitTypeRequirement(unitType3); 267 req.AddUnitTypeRequirement(unitType3);
268 Assert.That(req.GetAllowsAddingMessage(unitType3, army), Is.EqualTo("Army contains " + unitType1.Name + " and so cannot contain more than: 0 × " + unitType2.Name + " (would have 1); 0 × " + unitType3.Name + " (would have 1).")); 268 Assert.That(req.GetAllowsAddingMessage(unitType3, army), Is.EqualTo("Army would contain " + unitType1.Name + " and so cannot contain more than: 0 × " + unitType2.Name + " (would have 1); 0 × " + unitType3.Name + " (would have 1)."));
269 } 269 }
270 270
271 [Test] 271 [Test]
272 public void TestAllowsAddMessageIsCorrectForFailWithTwoUnitsProhibitedAndOtherUnitInArmy() 272 public void TestAllowsAddMessageIsCorrectForFailWithTwoUnitsProhibitedAndOtherUnitInArmy()
273 { 273 {
275 AddUnitOfTypeToArmy(unitType1, army); 275 AddUnitOfTypeToArmy(unitType1, army);
276 AddUnitOfTypeToArmy(unitType3, army); 276 AddUnitOfTypeToArmy(unitType3, army);
277 RequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); 277 RequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1);
278 req.AddUnitTypeRequirement(unitType2); 278 req.AddUnitTypeRequirement(unitType2);
279 req.AddUnitTypeRequirement(unitType3); 279 req.AddUnitTypeRequirement(unitType3);
280 Assert.That(req.GetAllowsAddingMessage(unitType2, army), Is.EqualTo("Army contains " + unitType1.Name + " and so cannot contain more than: 0 × " + unitType2.Name + " (would have 1); 0 × " + unitType3.Name + " (would have 1).")); 280 Assert.That(req.GetAllowsAddingMessage(unitType2, army), Is.EqualTo("Army would contain " + unitType1.Name + " and so cannot contain more than: 0 × " + unitType2.Name + " (would have 1); 0 × " + unitType3.Name + " (would have 1)."));
281 } 281 }
282 282
283 private static void AddUnitOfTypeToArmy(UnitType unitType, Army army) 283 private static void AddUnitOfTypeToArmy(UnitType unitType, Army army)
284 { 284 {
285 army.AddUnit(CreateUnitOfType(unitType, army)); 285 army.AddUnit(CreateUnitOfType(unitType, army));