Mercurial > repos > IBDev-IBBoard.WarFoundry.API.Tests
diff API/Objects/Requirement/RequiresAtLeastNUnitsRequirementTest.cs @ 208:c323770e61c2
Re #379: Fix validation of requirements to check for unit
* Rename classes in tests to match API changes
* Alter tests to match new API (all classes require at least one UnitType that they're relevant to now)
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Wed, 22 Feb 2012 20:48:40 +0000 |
parents | 0762766bd3f2 |
children |
line wrap: on
line diff
--- a/API/Objects/Requirement/RequiresAtLeastNUnitsRequirementTest.cs Tue Jan 31 20:59:15 2012 +0000 +++ b/API/Objects/Requirement/RequiresAtLeastNUnitsRequirementTest.cs Wed Feb 22 20:48:40 2012 +0000 @@ -12,9 +12,10 @@ namespace IBBoard.WarFoundry.API.Objects.Requirement { [TestFixture()] - public class RequiresAtLeastNUnitsRequirementTest : AbstractEqualityTest<RequiresAtLeastNUnitsRequirement> + public class RequiresAtLeastNUnitsRequirementTest : AbstractEqualityTest<RequiresAtLeastNUnitsRequirement<UnitType>> { private MockRace mockRace; + private UnitType allowedUnitType; private UnitType unitType1; private UnitType unitType2; private UnitType unitType3; @@ -23,6 +24,8 @@ public void SetupRace() { mockRace = new MockRace(); + allowedUnitType = new MockUnitType("allowed", "Allowed Type"); + mockRace.AddUnitType(allowedUnitType); unitType1 = new MockUnitType("type1", "Unit Type 1"); mockRace.AddUnitType(unitType1); unitType2 = new MockUnitType("type2", "Unit Type 2"); @@ -36,7 +39,7 @@ { Army army = new Army(mockRace, "Test", 1000); Unit unit = CreateUnitOfType(unitType1, army); - RequiresAtLeastNUnitsRequirement req = new RequiresAtLeastNUnitsRequirement(unitType2); + RequiresAtLeastNUnitsRequirement<UnitType> req = new RequiresAtLeastNUnitsRequirement<UnitType>(allowedUnitType, unitType2); Assert.That(req.AllowsAdding(unit, army), Is.EqualTo(Validation.NotApplicable)); } @@ -45,7 +48,7 @@ { Army army = new Army(mockRace, "Test", 1000); Unit unit = CreateUnitOfType(unitType1, army); - RequiresAtLeastNUnitsRequirement req = new RequiresAtLeastNUnitsRequirement(unitType1); + RequiresAtLeastNUnitsRequirement<UnitType> req = new RequiresAtLeastNUnitsRequirement<UnitType>(allowedUnitType, unitType1); Assert.That(req.AllowsAdding(unit, army), Is.EqualTo(Validation.Passed)); } @@ -53,7 +56,7 @@ public void TestAddingUnitWithOneUnitAndTwoOfUnitTypeRequired() { Army army = new Army(mockRace, "Test", 1000); - RequiresAtLeastNUnitsRequirement req = new RequiresAtLeastNUnitsRequirement(); + RequiresAtLeastNUnitsRequirement<UnitType> req = new RequiresAtLeastNUnitsRequirement<UnitType>(allowedUnitType); req.AddUnitTypeRequirement(unitType1, 2); AddUnitOfTypeToArmy(unitType1, army); Unit unit = CreateUnitOfType(unitType1, army); @@ -64,7 +67,7 @@ public void TestAddingUnrelatedUnitTypeWithNoUnitsAndOneUnitTypeRequired() { Army army = new Army(mockRace, "Test", 1000); - RequiresAtLeastNUnitsRequirement req = new RequiresAtLeastNUnitsRequirement(unitType2); + RequiresAtLeastNUnitsRequirement<UnitType> req = new RequiresAtLeastNUnitsRequirement<UnitType>(allowedUnitType, unitType2); Assert.That(req.AllowsAdding(unitType1, army), Is.EqualTo(Validation.NotApplicable)); } @@ -72,7 +75,7 @@ public void TestAddingUnitTypeWithNoUnitsAndOneUnitTypeRequired() { Army army = new Army(mockRace, "Test", 1000); - RequiresAtLeastNUnitsRequirement req = new RequiresAtLeastNUnitsRequirement(unitType1); + RequiresAtLeastNUnitsRequirement<UnitType> req = new RequiresAtLeastNUnitsRequirement<UnitType>(allowedUnitType, unitType1); Assert.That(req.AllowsAdding(unitType1, army), Is.EqualTo(Validation.Passed)); } @@ -81,7 +84,7 @@ { Army army = new Army(mockRace, "Test", 1000); AddUnitOfTypeToArmy(unitType1, army); - RequiresAtLeastNUnitsRequirement req = new RequiresAtLeastNUnitsRequirement(unitType1); + RequiresAtLeastNUnitsRequirement<UnitType> req = new RequiresAtLeastNUnitsRequirement<UnitType>(allowedUnitType, unitType1); Assert.That(req.AllowsAdding(unitType1, army), Is.EqualTo(Validation.Passed)); } @@ -89,7 +92,7 @@ public void TestAddingUnitTypeWithNoUnitsAndTwoUnitTypesRequired() { Army army = new Army(mockRace, "Test", 1000); - RequiresAtLeastNUnitsRequirement req = new RequiresAtLeastNUnitsRequirement(unitType2, unitType3); + RequiresAtLeastNUnitsRequirement<UnitType> req = new RequiresAtLeastNUnitsRequirement<UnitType>(allowedUnitType, unitType2, unitType3); Assert.That(req.AllowsAdding(unitType2, army), Is.EqualTo(Validation.Failed)); } @@ -98,7 +101,7 @@ { Army army = new Army(mockRace, "Test", 1000); AddUnitOfTypeToArmy(unitType3, army); - RequiresAtLeastNUnitsRequirement req = new RequiresAtLeastNUnitsRequirement(unitType2, unitType3); + RequiresAtLeastNUnitsRequirement<UnitType> req = new RequiresAtLeastNUnitsRequirement<UnitType>(allowedUnitType, unitType2, unitType3); Assert.That(req.AllowsAdding(unitType2, army), Is.EqualTo(Validation.Passed)); } @@ -108,7 +111,7 @@ Army army = new Army(mockRace, "Test", 1000); AddUnitOfTypeToArmy(unitType2, army); AddUnitOfTypeToArmy(unitType3, army); - RequiresAtLeastNUnitsRequirement req = new RequiresAtLeastNUnitsRequirement(unitType2, unitType3); + RequiresAtLeastNUnitsRequirement<UnitType> req = new RequiresAtLeastNUnitsRequirement<UnitType>(allowedUnitType, unitType2, unitType3); Assert.That(req.AllowsAdding(unitType2, army), Is.EqualTo(Validation.Passed)); } @@ -116,7 +119,7 @@ public void TestAddingOneOfUnitTypeWithTwoOfOneUnitTypeRequired() { Army army = new Army(mockRace, "Test", 1000); - RequiresAtLeastNUnitsRequirement req = new RequiresAtLeastNUnitsRequirement(); + RequiresAtLeastNUnitsRequirement<UnitType> req = new RequiresAtLeastNUnitsRequirement<UnitType>(allowedUnitType); req.AddUnitTypeRequirement(unitType1, 2); Assert.That(req.AllowsAdding(unitType1, army), Is.EqualTo(Validation.Failed)); } @@ -126,7 +129,7 @@ { Army army = new Army(mockRace, "Test", 1000); AddUnitOfTypeToArmy(unitType1, army); - RequiresAtLeastNUnitsRequirement req = new RequiresAtLeastNUnitsRequirement(); + RequiresAtLeastNUnitsRequirement<UnitType> req = new RequiresAtLeastNUnitsRequirement<UnitType>(allowedUnitType); req.AddUnitTypeRequirement(unitType1, 2); Assert.That(req.AllowsAdding(unitType1, army), Is.EqualTo(Validation.Passed)); } @@ -135,7 +138,7 @@ public void TestAddingUnitTypeRequirementWithNoNumberDefaultsToHavingOne() { Army army = new Army(mockRace, "Test", 1000); - RequiresAtLeastNUnitsRequirement req = new RequiresAtLeastNUnitsRequirement(); + RequiresAtLeastNUnitsRequirement<UnitType> req = new RequiresAtLeastNUnitsRequirement<UnitType>(allowedUnitType); req.AddUnitTypeRequirement(unitType1); Assert.That(req.AllowsAdding(unitType1, army), Is.EqualTo(Validation.Passed)); } @@ -144,7 +147,7 @@ public void TestValidityOfArmyWithNoUnitsAndOneUnitTypeRequired() { Army army = new Army(mockRace, "Test", 1000); - RequiresAtLeastNUnitsRequirement req = new RequiresAtLeastNUnitsRequirement(unitType1); + RequiresAtLeastNUnitsRequirement<UnitType> req = new RequiresAtLeastNUnitsRequirement<UnitType>(allowedUnitType, unitType1); Assert.That(req.ValidatesArmy(army), Is.EqualTo(Validation.Failed)); } @@ -153,7 +156,7 @@ { Army army = new Army(mockRace, "Test", 1000); AddUnitOfTypeToArmy(unitType1, army); - RequiresAtLeastNUnitsRequirement req = new RequiresAtLeastNUnitsRequirement(unitType1); + RequiresAtLeastNUnitsRequirement<UnitType> req = new RequiresAtLeastNUnitsRequirement<UnitType>(allowedUnitType, unitType1); Assert.That(req.ValidatesArmy(army), Is.EqualTo(Validation.Passed)); } @@ -161,7 +164,7 @@ public void TestAddingMinNumberUnitTypePassesRequirement() { Army army = new Army(mockRace, "Test", 1000); - RequiresAtLeastNUnitsRequirement req = new RequiresAtLeastNUnitsRequirement(); + RequiresAtLeastNUnitsRequirement<UnitType> req = new RequiresAtLeastNUnitsRequirement<UnitType>(allowedUnitType); req.AddUnitTypeRequirement(unitType1, 2); Assert.That(req.AllowsAdding(unitType1, army), Is.EqualTo(Validation.Failed)); AddUnitOfTypeToArmy(unitType1, army); @@ -173,7 +176,7 @@ { Army army = new Army(mockRace, "Test", 1000); AddUnitOfTypeToArmy(unitType1, army); - RequiresAtLeastNUnitsRequirement req = new RequiresAtLeastNUnitsRequirement(unitType1); + RequiresAtLeastNUnitsRequirement<UnitType> req = new RequiresAtLeastNUnitsRequirement<UnitType>(allowedUnitType, unitType1); Assert.That(req.GetValidationMessage(army), Is.Empty); } @@ -181,7 +184,7 @@ public void TestValidationMessageIsCorrectForFailWithOneUnitRequired() { Army army = new Army(mockRace, "Test", 1000); - RequiresAtLeastNUnitsRequirement req = new RequiresAtLeastNUnitsRequirement(unitType1); + RequiresAtLeastNUnitsRequirement<UnitType> req = new RequiresAtLeastNUnitsRequirement<UnitType>(allowedUnitType, unitType1); Assert.That(req.GetValidationMessage(army), Is.EqualTo("Army must contain: 1 × " + unitType1.Name + " (have 0).")); } @@ -189,7 +192,7 @@ public void TestValidationMessageIsCorrectForFailWithTwoOfOneUnitRequired() { Army army = new Army(mockRace, "Test", 1000); - RequiresAtLeastNUnitsRequirement req = new RequiresAtLeastNUnitsRequirement(); + RequiresAtLeastNUnitsRequirement<UnitType> req = new RequiresAtLeastNUnitsRequirement<UnitType>(allowedUnitType); req.AddUnitTypeRequirement(unitType1, 2); Assert.That(req.GetValidationMessage(army), Is.EqualTo("Army must contain: 2 × " + unitType1.Name + " (have 0).")); } @@ -198,7 +201,7 @@ public void TestValidationMessageIsCorrectForFailWithTwoUnitsRequired() { Army army = new Army(mockRace, "Test", 1000); - RequiresAtLeastNUnitsRequirement req = new RequiresAtLeastNUnitsRequirement(); + RequiresAtLeastNUnitsRequirement<UnitType> req = new RequiresAtLeastNUnitsRequirement<UnitType>(allowedUnitType); req.AddUnitTypeRequirement(unitType1); req.AddUnitTypeRequirement(unitType2); Assert.That(req.GetValidationMessage(army), Is.EqualTo("Army must contain: 1 × " + unitType1.Name + " (have 0); 1 × " + unitType2.Name + " (have 0).")); @@ -209,7 +212,7 @@ { Army army = new Army(mockRace, "Test", 1000); AddUnitOfTypeToArmy(unitType1, army); - RequiresAtLeastNUnitsRequirement req = new RequiresAtLeastNUnitsRequirement(); + RequiresAtLeastNUnitsRequirement<UnitType> req = new RequiresAtLeastNUnitsRequirement<UnitType>(allowedUnitType); req.AddUnitTypeRequirement(unitType1); req.AddUnitTypeRequirement(unitType2); Assert.That(req.GetValidationMessage(army), Is.EqualTo("Army must contain: 1 × " + unitType2.Name + " (have 0).")); @@ -220,7 +223,7 @@ { Army army = new Army(mockRace, "Test", 1000); AddUnitOfTypeToArmy(unitType2, army); - RequiresAtLeastNUnitsRequirement req = new RequiresAtLeastNUnitsRequirement(); + RequiresAtLeastNUnitsRequirement<UnitType> req = new RequiresAtLeastNUnitsRequirement<UnitType>(allowedUnitType); req.AddUnitTypeRequirement(unitType1); req.AddUnitTypeRequirement(unitType2); Assert.That(req.GetValidationMessage(army), Is.EqualTo("Army must contain: 1 × " + unitType1.Name + " (have 0).")); @@ -231,7 +234,7 @@ { Army army = new Army(mockRace, "Test", 1000); AddUnitOfTypeToArmy(unitType1, army); - RequiresAtLeastNUnitsRequirement req = new RequiresAtLeastNUnitsRequirement(unitType1); + RequiresAtLeastNUnitsRequirement<UnitType> req = new RequiresAtLeastNUnitsRequirement<UnitType>(allowedUnitType, unitType1); Assert.That(req.GetAllowsAddingMessage(unitType1, army), Is.Empty); } @@ -239,7 +242,7 @@ public void TestAllowsAddingMessageIsCorrectForFailWithTwoOfOneUnitRequired() { Army army = new Army(mockRace, "Test", 1000); - RequiresAtLeastNUnitsRequirement req = new RequiresAtLeastNUnitsRequirement(); + RequiresAtLeastNUnitsRequirement<UnitType> req = new RequiresAtLeastNUnitsRequirement<UnitType>(allowedUnitType); req.AddUnitTypeRequirement(unitType1, 2); Assert.That(req.GetAllowsAddingMessage(unitType1, army), Is.EqualTo("Army must contain: 2 × " + unitType1.Name + " (would have 1).")); } @@ -248,7 +251,7 @@ public void TestAllowsAddingMessageIsCorrectForFailWithTwoUnitsRequired() { Army army = new Army(mockRace, "Test", 1000); - RequiresAtLeastNUnitsRequirement req = new RequiresAtLeastNUnitsRequirement(); + RequiresAtLeastNUnitsRequirement<UnitType> req = new RequiresAtLeastNUnitsRequirement<UnitType>(allowedUnitType); req.AddUnitTypeRequirement(unitType1); req.AddUnitTypeRequirement(unitType2); Assert.That(req.GetAllowsAddingMessage(unitType1, army), Is.EqualTo("Army must contain: 1 × " + unitType2.Name + " (would have 0).")); @@ -258,7 +261,7 @@ public void TestAllowsAddingMessageIsCorrectForFailWithTwoUnitsRequiredOtherUnit() { Army army = new Army(mockRace, "Test", 1000); - RequiresAtLeastNUnitsRequirement req = new RequiresAtLeastNUnitsRequirement(); + RequiresAtLeastNUnitsRequirement<UnitType> req = new RequiresAtLeastNUnitsRequirement<UnitType>(allowedUnitType); req.AddUnitTypeRequirement(unitType1); req.AddUnitTypeRequirement(unitType2); Assert.That(req.GetAllowsAddingMessage(unitType2, army), Is.EqualTo("Army must contain: 1 × " + unitType1.Name + " (would have 0).")); @@ -269,7 +272,7 @@ { Army army = new Army(mockRace, "Test", 1000); AddUnitOfTypeToArmy(unitType1, army); - RequiresAtLeastNUnitsRequirement req = new RequiresAtLeastNUnitsRequirement(); + RequiresAtLeastNUnitsRequirement<UnitType> req = new RequiresAtLeastNUnitsRequirement<UnitType>(allowedUnitType); req.AddUnitTypeRequirement(unitType1); req.AddUnitTypeRequirement(unitType2); Assert.That(req.GetAllowsAddingMessage(unitType1, army), Is.EqualTo("Army must contain: 1 × " + unitType2.Name + " (would have 0).")); @@ -280,7 +283,7 @@ { Army army = new Army(mockRace, "Test", 1000); AddUnitOfTypeToArmy(unitType2, army); - RequiresAtLeastNUnitsRequirement req = new RequiresAtLeastNUnitsRequirement(); + RequiresAtLeastNUnitsRequirement<UnitType> req = new RequiresAtLeastNUnitsRequirement<UnitType>(allowedUnitType); req.AddUnitTypeRequirement(unitType1); req.AddUnitTypeRequirement(unitType2); Assert.That(req.GetAllowsAddingMessage(unitType2, army), Is.EqualTo("Army must contain: 1 × " + unitType1.Name + " (would have 0).")); @@ -296,23 +299,23 @@ return new Unit(unitType, army.GetCategory(unitType.MainCategory)); } - public override RequiresAtLeastNUnitsRequirement GetObject () + public override RequiresAtLeastNUnitsRequirement<UnitType> GetObject() { - RequiresAtLeastNUnitsRequirement req = new RequiresAtLeastNUnitsRequirement(); + RequiresAtLeastNUnitsRequirement<UnitType> req = new RequiresAtLeastNUnitsRequirement<UnitType>(allowedUnitType); req.AddUnitTypeRequirement(unitType1, 2); return req; } - public override RequiresAtLeastNUnitsRequirement GetSameObject () + public override RequiresAtLeastNUnitsRequirement<UnitType> GetSameObject() { - RequiresAtLeastNUnitsRequirement req = new RequiresAtLeastNUnitsRequirement(); + RequiresAtLeastNUnitsRequirement<UnitType> req = new RequiresAtLeastNUnitsRequirement<UnitType>(allowedUnitType); req.AddUnitTypeRequirement(unitType1, 2); return req; } - public override RequiresAtLeastNUnitsRequirement GetDifferentObject () + public override RequiresAtLeastNUnitsRequirement<UnitType> GetDifferentObject() { - RequiresAtLeastNUnitsRequirement req = new RequiresAtLeastNUnitsRequirement(); + RequiresAtLeastNUnitsRequirement<UnitType> req = new RequiresAtLeastNUnitsRequirement<UnitType>(allowedUnitType); DummyWarFoundryFactory factory = new DummyWarFoundryFactory(); GameSystem gameSystem = new GameSystem("system", "system", factory); Race race = new Race("race", "race", gameSystem, factory);