Mercurial > repos > IBDev-IBBoard.WarFoundry.API.Tests
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 } |