Mercurial > repos > IBBoard.WarFoundry.API.Tests
comparison API/Util/UnitEquipmentUtilTest.cs @ 21:40a2fd337907
Re #198: Add equipment slots
* Add tests for min amount
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Tue, 27 Oct 2009 20:18:22 +0000 |
parents | 9b23e72ba3cf |
children | 25b21f564348 |
comparison
equal
deleted
inserted
replaced
20:beaf7a48a93f | 21:40a2fd337907 |
---|---|
19 UnitEquipmentItem equip = new MockNumericAmountUnitEquipmentItem(3); | 19 UnitEquipmentItem equip = new MockNumericAmountUnitEquipmentItem(3); |
20 UnitType unitType = equip.EquipmentForUnit; | 20 UnitType unitType = equip.EquipmentForUnit; |
21 Unit unit = GetUnit (unitType); | 21 Unit unit = GetUnit (unitType); |
22 Assert.AreEqual(3, UnitEquipmentUtil.GetMaxEquipmentCount(unit, equip)); | 22 Assert.AreEqual(3, UnitEquipmentUtil.GetMaxEquipmentCount(unit, equip)); |
23 } | 23 } |
24 | |
25 | 24 |
26 [Test()] | 25 [Test()] |
27 public void TestGetMaxEquipmentCountForFixedLimitItemOnNumberLimitedSlot() | 26 public void TestGetMaxEquipmentCountForFixedLimitItemOnNumberLimitedSlot() |
28 { | 27 { |
29 UnitEquipmentItem equip = new MockNumericAmountUnitEquipmentItem(); | 28 UnitEquipmentItem equip = new MockNumericAmountUnitEquipmentItem(); |
103 Unit unit = GetUnit(unitType); | 102 Unit unit = GetUnit(unitType); |
104 UnitEquipmentItem equip2 = new MockPercentageAmountUnitEquipmentItem(new MockEquipmentItem("equip2"), unitType); | 103 UnitEquipmentItem equip2 = new MockPercentageAmountUnitEquipmentItem(new MockEquipmentItem("equip2"), unitType); |
105 equip2.SlotName = "slot"; | 104 equip2.SlotName = "slot"; |
106 unit.SetEquipmentAmount(equip2, 5); | 105 unit.SetEquipmentAmount(equip2, 5); |
107 Assert.AreEqual(1, UnitEquipmentUtil.GetMaxEquipmentCount(unit, equip)); | 106 Assert.AreEqual(1, UnitEquipmentUtil.GetMaxEquipmentCount(unit, equip)); |
107 } | |
108 | |
109 | |
110 [Test()] | |
111 public void TestGetMinEquipmentCountForFixedLimitItemOnDefaultSlot() | |
112 { | |
113 UnitEquipmentItem equip = new MockNumericAmountUnitEquipmentItem(3); | |
114 UnitType unitType = equip.EquipmentForUnit; | |
115 Unit unit = GetUnit (unitType); | |
116 Assert.AreEqual(3, UnitEquipmentUtil.GetMinEquipmentCount(unit, equip)); | |
117 } | |
118 | |
119 [Test()] | |
120 public void TestGetMinEquipmentCountForFixedLimitItemOnNumberLimitedSlot() | |
121 { | |
122 UnitEquipmentItem equip = new MockNumericAmountUnitEquipmentItem(); | |
123 equip.MinLimit = new NumericSizeConstrainedLimit(3); | |
124 equip.SlotName = "slot"; | |
125 UnitType unitType = equip.EquipmentForUnit; | |
126 unitType.AddEquipmentSlot("slot", new AbsoluteNumericLimit(2)); | |
127 Unit unit = GetUnit(unitType); | |
128 Assert.AreEqual(2, UnitEquipmentUtil.GetMinEquipmentCount(unit, equip)); | |
129 } | |
130 | |
131 [Test()] | |
132 public void TestGetMinEquipmentCountForFixedLimitItemOnPercentageLimitedSlot() | |
133 { | |
134 UnitEquipmentItem equip = new MockNumericAmountUnitEquipmentItem(); | |
135 equip.MinLimit = new NumericSizeConstrainedLimit(7); | |
136 equip.SlotName = "slot"; | |
137 UnitType unitType = equip.EquipmentForUnit; | |
138 unitType.AddEquipmentSlot("slot", new SimpleRoundedPercentageLimit(50, false)); | |
139 Unit unit = GetUnit(unitType); | |
140 Assert.AreEqual(5, UnitEquipmentUtil.GetMinEquipmentCount(unit, equip)); | |
141 } | |
142 | |
143 [Test()] | |
144 public void TestGetMinEquipmentCountForFixedLimitItemOnNumberLimitedSlotWithExistingEquipment() | |
145 { | |
146 UnitEquipmentItem equip = new MockNumericAmountUnitEquipmentItem(); | |
147 equip.MinLimit = new NumericSizeConstrainedLimit(3); | |
148 equip.SlotName = "slot"; | |
149 UnitType unitType = equip.EquipmentForUnit; | |
150 unitType.AddEquipmentSlot("slot", new AbsoluteNumericLimit(6)); | |
151 Unit unit =GetUnit(unitType); | |
152 UnitEquipmentItem equip2 = new MockPercentageAmountUnitEquipmentItem(new MockEquipmentItem("equip2"), unitType); | |
153 equip2.SlotName = "slot"; | |
154 unit.SetEquipmentAmount(equip2, 5); | |
155 Assert.AreEqual(1, UnitEquipmentUtil.GetMinEquipmentCount(unit, equip)); | |
156 } | |
157 | |
158 [Test()] | |
159 public void TestGetMinEquipmentCountForPercentageLimitItemOnDefaultSlot() | |
160 { | |
161 UnitEquipmentItem equip = new MockPercentageAmountUnitEquipmentItem(); | |
162 UnitType unitType = equip.EquipmentForUnit; | |
163 Unit unit = GetUnit(unitType); | |
164 Assert.AreEqual(5, UnitEquipmentUtil.GetMinEquipmentCount(unit, equip)); | |
165 } | |
166 | |
167 [Test()] | |
168 public void TestGetMinEquipmentCountForPercentageLimitItemOnNumberLimitedSlot() | |
169 { | |
170 UnitEquipmentItem equip = new MockPercentageAmountUnitEquipmentItem(); | |
171 equip.SlotName = "slot"; | |
172 UnitType unitType = equip.EquipmentForUnit; | |
173 unitType.AddEquipmentSlot("slot", new AbsoluteNumericLimit(2)); | |
174 Unit unit = GetUnit(unitType); | |
175 Assert.AreEqual(2, UnitEquipmentUtil.GetMinEquipmentCount(unit, equip)); | |
176 } | |
177 | |
178 [Test()] | |
179 public void TestGetMinEquipmentCountForPercentageLimitItemOnPercentageLimitedSlot() | |
180 { | |
181 UnitEquipmentItem equip = new MockPercentageAmountUnitEquipmentItem(); | |
182 equip.SlotName = "slot"; | |
183 UnitType unitType = equip.EquipmentForUnit; | |
184 unitType.AddEquipmentSlot("slot", new SimpleRoundedPercentageLimit(25, false)); | |
185 Unit unit = GetUnit(unitType); | |
186 Assert.AreEqual(2, UnitEquipmentUtil.GetMinEquipmentCount(unit, equip)); | |
187 } | |
188 | |
189 [Test()] | |
190 public void TestGetMinEquipmentCountForPercentageLimitItemOnNumberLimitedSlotWithExistingEquipment() | |
191 { | |
192 UnitEquipmentItem equip = new MockPercentageAmountUnitEquipmentItem(); | |
193 equip.SlotName = "slot"; | |
194 UnitType unitType = equip.EquipmentForUnit; | |
195 unitType.AddEquipmentSlot("slot", new AbsoluteNumericLimit(6)); | |
196 Unit unit = GetUnit(unitType); | |
197 UnitEquipmentItem equip2 = new MockPercentageAmountUnitEquipmentItem(new MockEquipmentItem("equip2"), unitType); | |
198 equip2.SlotName = "slot"; | |
199 unit.SetEquipmentAmount(equip2, 5); | |
200 Assert.AreEqual(1, UnitEquipmentUtil.GetMinEquipmentCount(unit, equip)); | |
108 } | 201 } |
109 | 202 |
110 private static Unit GetUnit (UnitType unitType) | 203 private static Unit GetUnit (UnitType unitType) |
111 { | 204 { |
112 return new Unit ("unit", "Test Unit", 10, unitType, new MockArmyCategory (unitType.MainCategory)); | 205 return new Unit ("unit", "Test Unit", 10, unitType, new MockArmyCategory (unitType.MainCategory)); |