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));