Mercurial > repos > IBBoard.WarFoundry.API.Tests
diff API/Objects/Requirements/UnitRequiresAtLeastNUnitsRequirementTest.cs @ 106:4dad874f4862
Re #27: Define unit requirements
* Add unit tests for multiple unit types being required
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sun, 27 Mar 2011 19:19:04 +0000 |
parents | 9163bd04a3db |
children |
line wrap: on
line diff
--- a/API/Objects/Requirements/UnitRequiresAtLeastNUnitsRequirementTest.cs Sun Mar 27 19:15:22 2011 +0000 +++ b/API/Objects/Requirements/UnitRequiresAtLeastNUnitsRequirementTest.cs Sun Mar 27 19:19:04 2011 +0000 @@ -14,6 +14,7 @@ private MockRace mockRace; private UnitType unitType1; private UnitType unitType2; + private UnitType unitType3; [TestFixtureSetUp()] public void SetupRace() @@ -23,6 +24,8 @@ mockRace.AddUnitType(unitType1); unitType2 = new MockUnitType("type2", "Unit Type 2"); mockRace.AddUnitType(unitType2); + unitType3 = new MockUnitType("type3", "Unit Type 3"); + mockRace.AddUnitType(unitType3); } [Test()] @@ -61,6 +64,33 @@ Assert.That(req.AllowsAdding(unitType1, army), Is.True); } + [Test()] + public void TestAddingUnitTypeWithNoUnitsAndTwoUnitTypesRequired() + { + Army army = new Army(mockRace, "Test", 1000); + UnitRequiresAtLeastNUnitsRequirement req = new UnitRequiresAtLeastNUnitsRequirement(unitType2, unitType3); + Assert.That(req.AllowsAdding(unitType1, army), Is.False); + } + + [Test()] + public void TestAddingUnitTypeWithOneUnitAndTwoUnitTypesRequired() + { + Army army = new Army(mockRace, "Test", 1000); + AddUnitOfTypeToArmy(unitType2, army); + UnitRequiresAtLeastNUnitsRequirement req = new UnitRequiresAtLeastNUnitsRequirement(unitType2, unitType3); + Assert.That(req.AllowsAdding(unitType1, army), Is.False); + } + + [Test()] + public void TestAddingUnitTypeWithBothUnitsAndTwoUnitTypesRequired() + { + Army army = new Army(mockRace, "Test", 1000); + AddUnitOfTypeToArmy(unitType2, army); + AddUnitOfTypeToArmy(unitType3, army); + UnitRequiresAtLeastNUnitsRequirement req = new UnitRequiresAtLeastNUnitsRequirement(unitType2, unitType3); + Assert.That(req.AllowsAdding(unitType1, army), Is.True); + } + private static void AddUnitOfTypeToArmy(UnitType unitType, Army army) { army.AddUnit(CreateUnitOfType(unitType, army));