Mercurial > repos > IBBoard.WarFoundry.API.Tests
diff 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 |
line wrap: on
line diff
--- a/API/Objects/Requirement/RequiresNoMoreThanNOfUnitTypeRequirementTest.cs Sun May 01 19:14:38 2011 +0000 +++ b/API/Objects/Requirement/RequiresNoMoreThanNOfUnitTypeRequirementTest.cs Sun May 01 19:17:11 2011 +0000 @@ -173,6 +173,65 @@ Assert.That(req.GetValidationMessage(army), Is.EqualTo("Army cannot contain more than: 0 × " + unitType2.Name + " (have 1).")); } + [Test] + public void TestAllowsAddMessageIsBlankForPass() + { + Army army = new Army(mockRace, "Test", 1000); + RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(unitType1); + Assert.That(req.GetAllowsAddingMessage(unitType2, army), Is.Empty); + } + + [Test] + public void TestAllowsAddMessageIsCorrectForFailWithOneUnitProhibited() + { + Army army = new Army(mockRace, "Test", 1000); + RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(unitType1); + Assert.That(req.GetAllowsAddingMessage(unitType1, army), Is.EqualTo("Army cannot contain more than: 0 × " + unitType1.Name + " (would have 1).")); + } + + [Test] + public void TestAllowsAddMessageIsCorrectForFailWithTwoOfOneUnitLimit() + { + Army army = new Army(mockRace, "Test", 1000); + AddUnitOfTypeToArmy(unitType1, army); + AddUnitOfTypeToArmy(unitType1, army); + RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(); + req.AddUnitTypeRequirement(unitType1, 2); + Assert.That(req.GetAllowsAddingMessage(unitType1, army), Is.EqualTo("Army cannot contain more than: 2 × " + unitType1.Name + " (would have 3).")); + } + + [Test] + public void TestAllowsAddMessageIsCorrectForFailWithTwoUnitsProhibited() + { + Army army = new Army(mockRace, "Test", 1000); + RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(); + req.AddUnitTypeRequirement(unitType1); + req.AddUnitTypeRequirement(unitType2); + Assert.That(req.GetAllowsAddingMessage(unitType1, army), Is.EqualTo("Army cannot contain more than: 0 × " + unitType1.Name + " (would have 1).")); + } + + [Test] + public void TestAllowsAddMessageIsCorrectForFailWithTwoUnitsProhibitedAndOneUnitInArmy() + { + Army army = new Army(mockRace, "Test", 1000); + AddUnitOfTypeToArmy(unitType1, army); + RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(); + req.AddUnitTypeRequirement(unitType1); + req.AddUnitTypeRequirement(unitType2); + 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).")); + } + + [Test] + public void TestAllowsAddMessageIsCorrectForFailWithTwoUnitsProhibitedAndOtherUnitInArmy() + { + Army army = new Army(mockRace, "Test", 1000); + AddUnitOfTypeToArmy(unitType2, army); + RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(); + req.AddUnitTypeRequirement(unitType1); + req.AddUnitTypeRequirement(unitType2); + 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).")); + } + private static void AddUnitOfTypeToArmy(UnitType unitType, Army army) { army.AddUnit(CreateUnitOfType(unitType, army));