comparison API/Util/UnitEquipmentUtilTest.cs @ 19:9b23e72ba3cf

Re #198: Add equipment slots * Fix unit tests
author IBBoard <dev@ibboard.co.uk>
date Tue, 27 Oct 2009 20:00:54 +0000
parents e8e7554fb7f3
children 40a2fd337907
comparison
equal deleted inserted replaced
18:e8e7554fb7f3 19:9b23e72ba3cf
14 public class UnitEquipmentUtilTest 14 public class UnitEquipmentUtilTest
15 { 15 {
16 [Test()] 16 [Test()]
17 public void TestGetMaxEquipmentCountForFixedLimitItemOnDefaultSlot() 17 public void TestGetMaxEquipmentCountForFixedLimitItemOnDefaultSlot()
18 { 18 {
19 UnitEquipmentItem equip = new MockNumericAmountUnitEquipmentItem(); 19 UnitEquipmentItem equip = new MockNumericAmountUnitEquipmentItem(3);
20 equip.MaxNumber = 3;
21 UnitType unitType = equip.EquipmentForUnit; 20 UnitType unitType = equip.EquipmentForUnit;
22 Unit unit = new MockUnit(unitType, new MockArmyCategory(unitType.MainCategory)); 21 Unit unit = GetUnit (unitType);
23 Assert.AreEqual(3, UnitEquipmentUtil.GetMaxEquipmentCount(unit, equip)); 22 Assert.AreEqual(3, UnitEquipmentUtil.GetMaxEquipmentCount(unit, equip));
24 } 23 }
24
25 25
26 [Test()] 26 [Test()]
27 public void TestGetMaxEquipmentCountForFixedLimitItemOnNumberLimitedSlot() 27 public void TestGetMaxEquipmentCountForFixedLimitItemOnNumberLimitedSlot()
28 { 28 {
29 UnitEquipmentItem equip = new MockNumericAmountUnitEquipmentItem(); 29 UnitEquipmentItem equip = new MockNumericAmountUnitEquipmentItem();
30 equip.MaxNumber = 3; 30 equip.MaxLimit = new NumericSizeConstrainedLimit(3);
31 equip.SlotName = "slot";
31 UnitType unitType = equip.EquipmentForUnit; 32 UnitType unitType = equip.EquipmentForUnit;
32 unitType.AddEquipmentSlot("slot", new AbsoluteNumericLimit(2)); 33 unitType.AddEquipmentSlot("slot", new AbsoluteNumericLimit(2));
33 Unit unit = new MockUnit(unitType, new MockArmyCategory(unitType.MainCategory)); 34 Unit unit = GetUnit(unitType);
34 Assert.AreEqual(2, UnitEquipmentUtil.GetMaxEquipmentCount(unit, equip)); 35 Assert.AreEqual(2, UnitEquipmentUtil.GetMaxEquipmentCount(unit, equip));
36 }
37
38 [Test()]
39 public void TestGetMaxEquipmentCountForFixedLimitItemOnPercentageLimitedSlot()
40 {
41 UnitEquipmentItem equip = new MockNumericAmountUnitEquipmentItem();
42 equip.MaxLimit = new NumericSizeConstrainedLimit(7);
43 equip.SlotName = "slot";
44 UnitType unitType = equip.EquipmentForUnit;
45 unitType.AddEquipmentSlot("slot", new SimpleRoundedPercentageLimit(50, false));
46 Unit unit = GetUnit(unitType);
47 Assert.AreEqual(5, UnitEquipmentUtil.GetMaxEquipmentCount(unit, equip));
48 }
49
50 [Test()]
51 public void TestGetMaxEquipmentCountForFixedLimitItemOnNumberLimitedSlotWithExistingEquipment()
52 {
53 UnitEquipmentItem equip = new MockNumericAmountUnitEquipmentItem();
54 equip.MaxLimit = new NumericSizeConstrainedLimit(3);
55 equip.SlotName = "slot";
56 UnitType unitType = equip.EquipmentForUnit;
57 unitType.AddEquipmentSlot("slot", new AbsoluteNumericLimit(6));
58 Unit unit =GetUnit(unitType);
59 UnitEquipmentItem equip2 = new MockPercentageAmountUnitEquipmentItem(new MockEquipmentItem("equip2"), unitType);
60 equip2.SlotName = "slot";
61 unit.SetEquipmentAmount(equip2, 5);
62 Assert.AreEqual(1, UnitEquipmentUtil.GetMaxEquipmentCount(unit, equip));
63 }
64
65 [Test()]
66 public void TestGetMaxEquipmentCountForPercentageLimitItemOnDefaultSlot()
67 {
68 UnitEquipmentItem equip = new MockPercentageAmountUnitEquipmentItem();
69 UnitType unitType = equip.EquipmentForUnit;
70 Unit unit = GetUnit(unitType);
71 Assert.AreEqual(5, UnitEquipmentUtil.GetMaxEquipmentCount(unit, equip));
72 }
73
74 [Test()]
75 public void TestGetMaxEquipmentCountForPercentageLimitItemOnNumberLimitedSlot()
76 {
77 UnitEquipmentItem equip = new MockPercentageAmountUnitEquipmentItem();
78 equip.SlotName = "slot";
79 UnitType unitType = equip.EquipmentForUnit;
80 unitType.AddEquipmentSlot("slot", new AbsoluteNumericLimit(2));
81 Unit unit = GetUnit(unitType);
82 Assert.AreEqual(2, UnitEquipmentUtil.GetMaxEquipmentCount(unit, equip));
83 }
84
85 [Test()]
86 public void TestGetMaxEquipmentCountForPercentageLimitItemOnPercentageLimitedSlot()
87 {
88 UnitEquipmentItem equip = new MockPercentageAmountUnitEquipmentItem();
89 equip.SlotName = "slot";
90 UnitType unitType = equip.EquipmentForUnit;
91 unitType.AddEquipmentSlot("slot", new SimpleRoundedPercentageLimit(25, false));
92 Unit unit = GetUnit(unitType);
93 Assert.AreEqual(2, UnitEquipmentUtil.GetMaxEquipmentCount(unit, equip));
94 }
95
96 [Test()]
97 public void TestGetMaxEquipmentCountForPercentageLimitItemOnNumberLimitedSlotWithExistingEquipment()
98 {
99 UnitEquipmentItem equip = new MockPercentageAmountUnitEquipmentItem();
100 equip.SlotName = "slot";
101 UnitType unitType = equip.EquipmentForUnit;
102 unitType.AddEquipmentSlot("slot", new AbsoluteNumericLimit(6));
103 Unit unit = GetUnit(unitType);
104 UnitEquipmentItem equip2 = new MockPercentageAmountUnitEquipmentItem(new MockEquipmentItem("equip2"), unitType);
105 equip2.SlotName = "slot";
106 unit.SetEquipmentAmount(equip2, 5);
107 Assert.AreEqual(1, UnitEquipmentUtil.GetMaxEquipmentCount(unit, equip));
108 }
109
110 private static Unit GetUnit (UnitType unitType)
111 {
112 return new Unit ("unit", "Test Unit", 10, unitType, new MockArmyCategory (unitType.MainCategory));
35 } 113 }
36 } 114 }
37 } 115 }