# HG changeset patch # User IBBoard # Date 1256676776 0 # Node ID 92db6f6a6b0b0e70ac833b9be6cfba03ad1e182d # Parent 54abb61b9db8b4a89b9f05c522198ef3e62560da Re #198: Add equipment slots * Consolidate unit tests and add first test for percentage limit retrieval * Add tests to highlight problem with max limit actually taking min limit diff -r 54abb61b9db8 -r 92db6f6a6b0b API/Util/UnitEquipmentUtilTest.cs --- a/API/Util/UnitEquipmentUtilTest.cs Tue Oct 27 20:30:12 2009 +0000 +++ b/API/Util/UnitEquipmentUtilTest.cs Tue Oct 27 20:52:56 2009 +0000 @@ -14,16 +14,27 @@ public class UnitEquipmentUtilTest { [Test()] - public void TestGetMaxEquipmentCountForFixedLimitItemOnDefaultSlot() + public void TestGetEquipmentCountsForFixedLimitItemOnDefaultSlot() { UnitEquipmentItem equip = new MockNumericAmountUnitEquipmentItem(3); UnitType unitType = equip.EquipmentForUnit; Unit unit = GetUnit (unitType); Assert.AreEqual(3, UnitEquipmentUtil.GetMaxEquipmentCount(unit, equip)); + Assert.AreEqual(3, UnitEquipmentUtil.GetMinEquipmentCount(unit, equip)); } [Test()] - public void TestGetMaxEquipmentCountForFixedLimitItemOnNumberLimitedSlot() + public void TestGetEquipmentCountsForFixedLimitItemOnDefaultSlotWithDifferentMinLimit() + { + UnitEquipmentItem equip = new MockNumericAmountUnitEquipmentItem(1,3); + UnitType unitType = equip.EquipmentForUnit; + Unit unit = GetUnit (unitType); + Assert.AreEqual(3, UnitEquipmentUtil.GetMaxEquipmentCount(unit, equip)); + Assert.AreEqual(1, UnitEquipmentUtil.GetMinEquipmentCount(unit, equip)); + } + + [Test()] + public void TestGetEquipmentCountsForFixedLimitItemOnNumberLimitedSlot() { UnitEquipmentItem equip = new MockNumericAmountUnitEquipmentItem(); equip.MaxLimit = new NumericSizeConstrainedLimit(3); @@ -32,10 +43,11 @@ unitType.AddEquipmentSlot("slot", new AbsoluteNumericLimit(2)); Unit unit = GetUnit(unitType); Assert.AreEqual(2, UnitEquipmentUtil.GetMaxEquipmentCount(unit, equip)); + Assert.AreEqual(2, UnitEquipmentUtil.GetMinEquipmentCount(unit, equip)); } [Test()] - public void TestGetMaxEquipmentCountForFixedLimitItemOnPercentageLimitedSlot() + public void TestGetEquipmentCountsForFixedLimitItemOnPercentageLimitedSlot() { UnitEquipmentItem equip = new MockNumericAmountUnitEquipmentItem(); equip.MaxLimit = new NumericSizeConstrainedLimit(7); @@ -44,10 +56,11 @@ unitType.AddEquipmentSlot("slot", new SimpleRoundedPercentageLimit(50, false)); Unit unit = GetUnit(unitType); Assert.AreEqual(5, UnitEquipmentUtil.GetMaxEquipmentCount(unit, equip)); + Assert.AreEqual(5, UnitEquipmentUtil.GetMinEquipmentCount(unit, equip)); } [Test()] - public void TestGetMaxEquipmentCountForFixedLimitItemOnNumberLimitedSlotWithExistingEquipment() + public void TestGetEquipmentCountsForFixedLimitItemOnNumberLimitedSlotWithExistingEquipment() { UnitEquipmentItem equip = new MockNumericAmountUnitEquipmentItem(); equip.MaxLimit = new NumericSizeConstrainedLimit(3); @@ -59,19 +72,21 @@ equip2.SlotName = "slot"; unit.SetEquipmentAmount(equip2, 5); Assert.AreEqual(1, UnitEquipmentUtil.GetMaxEquipmentCount(unit, equip)); + Assert.AreEqual(1, UnitEquipmentUtil.GetMinEquipmentCount(unit, equip)); } [Test()] - public void TestGetMaxEquipmentCountForPercentageLimitItemOnDefaultSlot() + public void TestGetEquipmentCountsForPercentageLimitItemOnDefaultSlot() { UnitEquipmentItem equip = new MockPercentageAmountUnitEquipmentItem(); UnitType unitType = equip.EquipmentForUnit; Unit unit = GetUnit(unitType); Assert.AreEqual(5, UnitEquipmentUtil.GetMaxEquipmentCount(unit, equip)); + Assert.AreEqual(5, UnitEquipmentUtil.GetMinEquipmentCount(unit, equip)); } [Test()] - public void TestGetMaxEquipmentCountForPercentageLimitItemOnNumberLimitedSlot() + public void TestGetEquipmentCountsForPercentageLimitItemOnNumberLimitedSlot() { UnitEquipmentItem equip = new MockPercentageAmountUnitEquipmentItem(); equip.SlotName = "slot"; @@ -79,10 +94,11 @@ unitType.AddEquipmentSlot("slot", new AbsoluteNumericLimit(2)); Unit unit = GetUnit(unitType); Assert.AreEqual(2, UnitEquipmentUtil.GetMaxEquipmentCount(unit, equip)); + Assert.AreEqual(2, UnitEquipmentUtil.GetMinEquipmentCount(unit, equip)); } [Test()] - public void TestGetMaxEquipmentCountForPercentageLimitItemOnPercentageLimitedSlot() + public void TestGetEquipmentCountsForPercentageLimitItemOnPercentageLimitedSlot() { UnitEquipmentItem equip = new MockPercentageAmountUnitEquipmentItem(); equip.SlotName = "slot"; @@ -90,10 +106,11 @@ unitType.AddEquipmentSlot("slot", new SimpleRoundedPercentageLimit(25, false)); Unit unit = GetUnit(unitType); Assert.AreEqual(2, UnitEquipmentUtil.GetMaxEquipmentCount(unit, equip)); + Assert.AreEqual(2, UnitEquipmentUtil.GetMinEquipmentCount(unit, equip)); } [Test()] - public void TestGetMaxEquipmentCountForPercentageLimitItemOnNumberLimitedSlotWithExistingEquipment() + public void TestGetEquipmentCountsForPercentageLimitItemOnNumberLimitedSlotWithExistingEquipment() { UnitEquipmentItem equip = new MockPercentageAmountUnitEquipmentItem(); equip.SlotName = "slot"; @@ -104,99 +121,6 @@ equip2.SlotName = "slot"; 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)); } @@ -205,7 +129,6 @@ { UnitEquipmentItem equip = new MockPercentageAmountUnitEquipmentItem(); equip.SlotName = "slot"; - equip.MinLimit = new SimpleRoundedPercentageLimit(50, true); UnitType unitType = equip.EquipmentForUnit; unitType.AddEquipmentSlot("slot", new UnlimitedLimit()); Unit unit = GetUnit(unitType); @@ -217,7 +140,6 @@ { UnitEquipmentItem equip = new MockPercentageAmountUnitEquipmentItem(); equip.SlotName = "slot"; - equip.MinLimit = new SimpleRoundedPercentageLimit(50, true); UnitType unitType = equip.EquipmentForUnit; unitType.AddEquipmentSlot("slot", new SimpleRoundedPercentageLimit(50, true)); Unit unit = GetUnit(unitType); @@ -229,7 +151,6 @@ { UnitEquipmentItem equip = new MockPercentageAmountUnitEquipmentItem(); equip.SlotName = "slot"; - equip.MinLimit = new SimpleRoundedPercentageLimit(50, true); UnitType unitType = equip.EquipmentForUnit; unitType.AddEquipmentSlot("slot", new AbsoluteNumericLimit(5)); Unit unit = GetUnit(unitType); @@ -239,9 +160,8 @@ [Test()] public void TestIsEquipmentRatioLimitsWithAbsoluteLimitedEquipmentAndAbsoluteSlot() { - UnitEquipmentItem equip = new MockPercentageAmountUnitEquipmentItem(); + UnitEquipmentItem equip = new MockNumericAmountUnitEquipmentItem(); equip.SlotName = "slot"; - equip.MinLimit = new AbsoluteNumericLimit(50); UnitType unitType = equip.EquipmentForUnit; unitType.AddEquipmentSlot("slot", new AbsoluteNumericLimit(5)); Unit unit = GetUnit(unitType); @@ -251,9 +171,8 @@ [Test()] public void TestIsEquipmentRatioLimitsWithAbsoluteLimitedEquipmentAndUnlimitedSlot() { - UnitEquipmentItem equip = new MockPercentageAmountUnitEquipmentItem(); + UnitEquipmentItem equip = new MockNumericAmountUnitEquipmentItem(); equip.SlotName = "slot"; - equip.MinLimit = new AbsoluteNumericLimit(50); UnitType unitType = equip.EquipmentForUnit; unitType.AddEquipmentSlot("slot", new UnlimitedLimit()); Unit unit = GetUnit(unitType); @@ -263,16 +182,24 @@ [Test()] public void TestIsEquipmentRatioLimitsWithAbsoluteLimitedEquipmentAndRatioSlot() { - UnitEquipmentItem equip = new MockPercentageAmountUnitEquipmentItem(); + UnitEquipmentItem equip = new MockNumericAmountUnitEquipmentItem(); equip.SlotName = "slot"; - equip.MinLimit = new AbsoluteNumericLimit(50); UnitType unitType = equip.EquipmentForUnit; unitType.AddEquipmentSlot("slot", new SimpleRoundedPercentageLimit(50, true)); Unit unit = GetUnit(unitType); Assert.IsFalse(UnitEquipmentUtil.IsEquipmentRatioLimited(unit, equip)); } - - private static Unit GetUnit (UnitType unitType) + + [Test()] + public void TestGetMaxPercentageForPercentageLimitedEquipmentOnUnlimitedSlot() + { + UnitEquipmentItem equip = new MockPercentageAmountUnitEquipmentItem(75); + UnitType unitType = equip.EquipmentForUnit; + Unit unit = GetUnit(unitType); + Assert.AreEqual(75, UnitEquipmentUtil.GetMaxEquipmentPercentage(unit, equip)); + } + + private Unit GetUnit (UnitType unitType) { return new Unit ("unit", "Test Unit", 10, unitType, new MockArmyCategory (unitType.MainCategory)); }