comparison API/Objects/Requirement/UnitRequiresNUnitsForMUnitsRequirementTests.cs @ 214:1674a499168e

Re #379: * Make all tests test both Unit and UnitType by modifying abstract class's helper methods * Re-implement UnitRequiresAtLeastNUnitsRequirementTest tests (adding and validation) * Remove unused tests from Requires... TODO: Re-implement equality testing
author IBBoard <dev@ibboard.co.uk>
date Sun, 26 Feb 2012 20:18:45 +0000
parents 325943cb1db0
children 9bf34e88da89
comparison
equal deleted inserted replaced
213:0416df2ab39b 214:1674a499168e
27 unitType3 = new MockUnitType("type3", "Unit Type 3"); 27 unitType3 = new MockUnitType("type3", "Unit Type 3");
28 mockRace.AddUnitType(unitType3); 28 mockRace.AddUnitType(unitType3);
29 } 29 }
30 30
31 [Test()] 31 [Test()]
32 public void TestAddingUnitWithNoUnitsAndOneUnitTypeRequiredFails()
33 {
34 Army army = new Army(mockRace, "Test", 1000);
35 Unit unit = CreateUnitOfType(unitType1, army);
36 UnitRequiresNUnitsForMUnitsRequirement req = new UnitRequiresNUnitsForMUnitsRequirement(unitType1);
37 req.AddUnitTypeRequirement(unitType2);
38 Assert_That__FailsAdding(req, unit, army, "Army must contain: 1 × " + unitType2.Name + " for every 1 × " + unitType1.Name + " (would have 0 for 1).");
39 }
40
41 [Test()]
42 public void TestAddingUnitTypeWithNoUnitsAndOneUnitTypeRequiredFails() 32 public void TestAddingUnitTypeWithNoUnitsAndOneUnitTypeRequiredFails()
43 { 33 {
44 Army army = new Army(mockRace, "Test", 1000); 34 Army army = new Army(mockRace, "Test", 1000);
45 UnitRequiresNUnitsForMUnitsRequirement req = new UnitRequiresNUnitsForMUnitsRequirement(unitType1); 35 UnitRequiresNUnitsForMUnitsRequirement req = new UnitRequiresNUnitsForMUnitsRequirement(unitType1);
46 req.AddUnitTypeRequirement(unitType2); 36 req.AddUnitTypeRequirement(unitType2);
47 Assert_That__FailsAdding(req, unitType1, army, "Army must contain: 1 × " + unitType2.Name + " for every 1 × " + unitType1.Name + " (would have 0 for 1)."); 37 Assert_That__FailsAdding(req, unitType1, army, "Army must contain: 1 × " + unitType2.Name + " for every 1 × " + unitType1.Name + " (would have 0 for 1).");
48 } 38 }
49 39
50 [Test()] 40 [Test()]
51 public void TestAddingUnitWithOneUnitAndOneUnitTypeRequiredPasses()
52 {
53 Army army = new Army(mockRace, "Test", 1000);
54 AddUnitOfTypeToArmy(unitType2, army);
55 Unit unit = CreateUnitOfType(unitType1, army);
56 UnitRequiresNUnitsForMUnitsRequirement req = new UnitRequiresNUnitsForMUnitsRequirement(unitType1);
57 req.AddUnitTypeRequirement(unitType2);
58 Assert_That__PassesAdding(req, unit, army);
59 }
60
61 [Test()]
62 public void TestAddingUnitTypeWithOneUnitAndOneUnitTypeRequiredPasses() 41 public void TestAddingUnitTypeWithOneUnitAndOneUnitTypeRequiredPasses()
63 { 42 {
64 Army army = new Army(mockRace, "Test", 1000); 43 Army army = new Army(mockRace, "Test", 1000);
65 AddUnitOfTypeToArmy(unitType2, army); 44 AddUnitOfTypeToArmy(unitType2, army);
66 UnitRequiresNUnitsForMUnitsRequirement req = new UnitRequiresNUnitsForMUnitsRequirement(unitType1); 45 UnitRequiresNUnitsForMUnitsRequirement req = new UnitRequiresNUnitsForMUnitsRequirement(unitType1);
67 req.AddUnitTypeRequirement(unitType2); 46 req.AddUnitTypeRequirement(unitType2);
68 Assert_That__PassesAdding(req, unitType1, army); 47 Assert_That__PassesAdding(req, unitType1, army);
69 } 48 }
70 49
71 [Test()] 50 [Test()]
72 public void TestAddingUnitWithOneUnitAndOneUnitTypeRequiredPassesWhenAddingRequiredUnit()
73 {
74 Army army = new Army(mockRace, "Test", 1000);
75 AddUnitOfTypeToArmy(unitType1, army);
76 Unit unit = CreateUnitOfType(unitType2, army);
77 UnitRequiresNUnitsForMUnitsRequirement req = new UnitRequiresNUnitsForMUnitsRequirement(unitType1);
78 req.AddUnitTypeRequirement(unitType2);
79 Assert_That__PassesAdding(req, unit, army);
80 }
81
82 [Test()]
83 public void TestAddingUnitTypeWithOneUnitAndOneUnitTypeRequiredPassesWhenAddingRequiredUnitType() 51 public void TestAddingUnitTypeWithOneUnitAndOneUnitTypeRequiredPassesWhenAddingRequiredUnitType()
84 { 52 {
85 Army army = new Army(mockRace, "Test", 1000); 53 Army army = new Army(mockRace, "Test", 1000);
86 AddUnitOfTypeToArmy(unitType1, army); 54 AddUnitOfTypeToArmy(unitType1, army);
87 UnitRequiresNUnitsForMUnitsRequirement req = new UnitRequiresNUnitsForMUnitsRequirement(unitType1); 55 UnitRequiresNUnitsForMUnitsRequirement req = new UnitRequiresNUnitsForMUnitsRequirement(unitType1);
149 { 117 {
150 Army army = new Army(mockRace, "Test", 1000); 118 Army army = new Army(mockRace, "Test", 1000);
151 UnitRequiresNUnitsForMUnitsRequirement req = new UnitRequiresNUnitsForMUnitsRequirement(unitType1); 119 UnitRequiresNUnitsForMUnitsRequirement req = new UnitRequiresNUnitsForMUnitsRequirement(unitType1);
152 req.AddUnitTypeRequirement(unitType2); 120 req.AddUnitTypeRequirement(unitType2);
153 Assert_That__AddingNotApplicable(req, unitType3, army); 121 Assert_That__AddingNotApplicable(req, unitType3, army);
154 Assert_That__AddingNotApplicable(req, CreateUnitOfType(unitType3, army), army);
155 Assert_That__AddingNotApplicable(req, unitType2, army); 122 Assert_That__AddingNotApplicable(req, unitType2, army);
156 Assert_That__AddingNotApplicable(req, CreateUnitOfType(unitType2, army), army);
157 } 123 }
158 124
159 [Test] 125 [Test]
160 public void TestRequirementNotApplicableAfterAddingLimitedUnit() 126 public void TestRequirementNotApplicableAfterAddingLimitedUnit()
161 { 127 {