Mercurial > repos > IBBoard.WarFoundry.API.Tests
comparison API/Objects/Requirement/RequiresNoMoreThanNOfUnitTypeRequirementTest.cs @ 144:eced294e82f2
Re #345: Add failure message to requirements
* Add tests for "no more than" requirements
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sun, 01 May 2011 15:38:01 +0000 |
parents | 2ae80631ec9c |
children | 8c519a44e699 |
comparison
equal
deleted
inserted
replaced
143:6fdb76d48e04 | 144:eced294e82f2 |
---|---|
108 Assert.That(req.ValidatesArmy(army), Is.EqualTo(Validation.Passed)); | 108 Assert.That(req.ValidatesArmy(army), Is.EqualTo(Validation.Passed)); |
109 AddUnitOfTypeToArmy(unitType2, army); | 109 AddUnitOfTypeToArmy(unitType2, army); |
110 Assert.That(req.ValidatesArmy(army), Is.EqualTo(Validation.Failed)); | 110 Assert.That(req.ValidatesArmy(army), Is.EqualTo(Validation.Failed)); |
111 } | 111 } |
112 | 112 |
113 [Test] | |
114 public void TestValidationMessageIsBlankForPass() | |
115 { | |
116 Army army = new Army(mockRace, "Test", 1000); | |
117 RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(unitType1); | |
118 Assert.That(req.GetValidationMessage(army), Is.Empty); | |
119 } | |
120 | |
121 [Test] | |
122 public void TestValidationMessageIsCorrectForFailWithOneUnitProhibited() | |
123 { | |
124 Army army = new Army(mockRace, "Test", 1000); | |
125 AddUnitOfTypeToArmy(unitType1, army); | |
126 RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(unitType1); | |
127 Assert.That(req.GetValidationMessage(army), Is.EqualTo("Army cannot contain more than: 0 × " + unitType1.Name + " (have 1).")); | |
128 } | |
129 | |
130 [Test] | |
131 public void TestValidationMessageIsCorrectForFailWithTwoOfOneUnitLimit() | |
132 { | |
133 Army army = new Army(mockRace, "Test", 1000); | |
134 AddUnitOfTypeToArmy(unitType1, army); | |
135 AddUnitOfTypeToArmy(unitType1, army); | |
136 AddUnitOfTypeToArmy(unitType1, army); | |
137 RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(); | |
138 req.AddUnitTypeRequirement(unitType1, 2); | |
139 Assert.That(req.GetValidationMessage(army), Is.EqualTo("Army cannot contain more than: 2 × " + unitType1.Name + " (have 3).")); | |
140 } | |
141 | |
142 [Test] | |
143 public void TestValidationMessageIsCorrectForFailWithTwoUnitsProhibited() | |
144 { | |
145 Army army = new Army(mockRace, "Test", 1000); | |
146 AddUnitOfTypeToArmy(unitType1, army); | |
147 AddUnitOfTypeToArmy(unitType2, army); | |
148 RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(); | |
149 req.AddUnitTypeRequirement(unitType1); | |
150 req.AddUnitTypeRequirement(unitType2); | |
151 Assert.That(req.GetValidationMessage(army), Is.EqualTo("Army cannot contain more than: 0 × " + unitType1.Name + " (have 1); 0 × " + unitType2.Name + " (have 1).")); | |
152 } | |
153 | |
154 [Test] | |
155 public void TestValidationMessageIsCorrectForFailWithTwoUnitsProhibitedAndOneUnitInArmy() | |
156 { | |
157 Army army = new Army(mockRace, "Test", 1000); | |
158 AddUnitOfTypeToArmy(unitType1, army); | |
159 RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(); | |
160 req.AddUnitTypeRequirement(unitType1); | |
161 req.AddUnitTypeRequirement(unitType2); | |
162 Assert.That(req.GetValidationMessage(army), Is.EqualTo("Army cannot contain more than: 0 × " + unitType1.Name + " (have 1).")); | |
163 } | |
164 | |
165 [Test] | |
166 public void TestValidationMessageIsCorrectForFailWithTwoUnitsProhibitedAndOtherUnitInArmy() | |
167 { | |
168 Army army = new Army(mockRace, "Test", 1000); | |
169 AddUnitOfTypeToArmy(unitType2, army); | |
170 RequiresNoMoreThanNOfUnitTypeRequirement req = new RequiresNoMoreThanNOfUnitTypeRequirement(); | |
171 req.AddUnitTypeRequirement(unitType1); | |
172 req.AddUnitTypeRequirement(unitType2); | |
173 Assert.That(req.GetValidationMessage(army), Is.EqualTo("Army cannot contain more than: 0 × " + unitType2.Name + " (have 1).")); | |
174 } | |
175 | |
113 private static void AddUnitOfTypeToArmy(UnitType unitType, Army army) | 176 private static void AddUnitOfTypeToArmy(UnitType unitType, Army army) |
114 { | 177 { |
115 army.AddUnit(CreateUnitOfType(unitType, army)); | 178 army.AddUnit(CreateUnitOfType(unitType, army)); |
116 } | 179 } |
117 | 180 |