# HG changeset patch # User IBBoard # Date 1256674702 0 # Node ID 40a2fd337907e14f8720261a5fca26fb126603e9 # Parent beaf7a48a93f9e4939730c24646c3b7d175841ca Re #198: Add equipment slots * Add tests for min amount diff -r beaf7a48a93f -r 40a2fd337907 API/Util/UnitEquipmentUtilTest.cs --- a/API/Util/UnitEquipmentUtilTest.cs Tue Oct 27 20:08:52 2009 +0000 +++ b/API/Util/UnitEquipmentUtilTest.cs Tue Oct 27 20:18:22 2009 +0000 @@ -21,7 +21,6 @@ Unit unit = GetUnit (unitType); Assert.AreEqual(3, UnitEquipmentUtil.GetMaxEquipmentCount(unit, equip)); } - [Test()] public void TestGetMaxEquipmentCountForFixedLimitItemOnNumberLimitedSlot() @@ -106,6 +105,100 @@ unit.SetEquipmentAmount(equip2, 5); Assert.AreEqual(1, UnitEquipmentUtil.GetMaxEquipmentCount(unit, equip)); } + + + [Test()] + public void TestGetMinEquipmentCountForFixedLimitItemOnDefaultSlot() + { + UnitEquipmentItem equip = new MockNumericAmountUnitEquipmentItem(3); + UnitType unitType = equip.EquipmentForUnit; + Unit unit = GetUnit (unitType); + Assert.AreEqual(3, UnitEquipmentUtil.GetMinEquipmentCount(unit, equip)); + } + + [Test()] + public void TestGetMinEquipmentCountForFixedLimitItemOnNumberLimitedSlot() + { + UnitEquipmentItem equip = new MockNumericAmountUnitEquipmentItem(); + equip.MinLimit = new NumericSizeConstrainedLimit(3); + equip.SlotName = "slot"; + UnitType unitType = equip.EquipmentForUnit; + unitType.AddEquipmentSlot("slot", new AbsoluteNumericLimit(2)); + Unit unit = GetUnit(unitType); + Assert.AreEqual(2, UnitEquipmentUtil.GetMinEquipmentCount(unit, equip)); + } + + [Test()] + public void TestGetMinEquipmentCountForFixedLimitItemOnPercentageLimitedSlot() + { + UnitEquipmentItem equip = new MockNumericAmountUnitEquipmentItem(); + equip.MinLimit = new NumericSizeConstrainedLimit(7); + equip.SlotName = "slot"; + UnitType unitType = equip.EquipmentForUnit; + unitType.AddEquipmentSlot("slot", new SimpleRoundedPercentageLimit(50, false)); + Unit unit = GetUnit(unitType); + Assert.AreEqual(5, UnitEquipmentUtil.GetMinEquipmentCount(unit, equip)); + } + + [Test()] + public void TestGetMinEquipmentCountForFixedLimitItemOnNumberLimitedSlotWithExistingEquipment() + { + UnitEquipmentItem equip = new MockNumericAmountUnitEquipmentItem(); + equip.MinLimit = new NumericSizeConstrainedLimit(3); + equip.SlotName = "slot"; + UnitType unitType = equip.EquipmentForUnit; + unitType.AddEquipmentSlot("slot", new AbsoluteNumericLimit(6)); + Unit unit =GetUnit(unitType); + UnitEquipmentItem equip2 = new MockPercentageAmountUnitEquipmentItem(new MockEquipmentItem("equip2"), unitType); + equip2.SlotName = "slot"; + unit.SetEquipmentAmount(equip2, 5); + Assert.AreEqual(1, UnitEquipmentUtil.GetMinEquipmentCount(unit, equip)); + } + + [Test()] + public void TestGetMinEquipmentCountForPercentageLimitItemOnDefaultSlot() + { + UnitEquipmentItem equip = new MockPercentageAmountUnitEquipmentItem(); + UnitType unitType = equip.EquipmentForUnit; + Unit unit = GetUnit(unitType); + Assert.AreEqual(5, UnitEquipmentUtil.GetMinEquipmentCount(unit, equip)); + } + + [Test()] + public void TestGetMinEquipmentCountForPercentageLimitItemOnNumberLimitedSlot() + { + UnitEquipmentItem equip = new MockPercentageAmountUnitEquipmentItem(); + equip.SlotName = "slot"; + UnitType unitType = equip.EquipmentForUnit; + unitType.AddEquipmentSlot("slot", new AbsoluteNumericLimit(2)); + Unit unit = GetUnit(unitType); + Assert.AreEqual(2, UnitEquipmentUtil.GetMinEquipmentCount(unit, equip)); + } + + [Test()] + public void TestGetMinEquipmentCountForPercentageLimitItemOnPercentageLimitedSlot() + { + UnitEquipmentItem equip = new MockPercentageAmountUnitEquipmentItem(); + equip.SlotName = "slot"; + UnitType unitType = equip.EquipmentForUnit; + unitType.AddEquipmentSlot("slot", new SimpleRoundedPercentageLimit(25, false)); + Unit unit = GetUnit(unitType); + Assert.AreEqual(2, UnitEquipmentUtil.GetMinEquipmentCount(unit, equip)); + } + + [Test()] + public void TestGetMinEquipmentCountForPercentageLimitItemOnNumberLimitedSlotWithExistingEquipment() + { + UnitEquipmentItem equip = new MockPercentageAmountUnitEquipmentItem(); + equip.SlotName = "slot"; + UnitType unitType = equip.EquipmentForUnit; + unitType.AddEquipmentSlot("slot", new AbsoluteNumericLimit(6)); + Unit unit = GetUnit(unitType); + UnitEquipmentItem equip2 = new MockPercentageAmountUnitEquipmentItem(new MockEquipmentItem("equip2"), unitType); + equip2.SlotName = "slot"; + unit.SetEquipmentAmount(equip2, 5); + Assert.AreEqual(1, UnitEquipmentUtil.GetMinEquipmentCount(unit, equip)); + } private static Unit GetUnit (UnitType unitType) {