Mercurial > repos > IBBoard.WarFoundry.API.Tests
annotate API/Objects/Requirement/UnitRequiresNoMoreThanNOfUnitTypeRequirementTest.cs @ 206:78ba834cb1f7
Re #379: Fix validation of requirements to check for unit
* Fix expected text for "Requires no more than", which has a slightly different format
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sun, 29 Jan 2012 20:03:44 +0000 |
parents | 8c519a44e699 |
children | 27f163bf884a |
rev | line source |
---|---|
144
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
1 // This file (RequiresNoMoreThanNOfUnitTypeRequirementTest.cs) is a part of the IBBoard.WarFoundry.API.Tests project and is copyright 2011 IBBoard |
120 | 2 // |
3 // The file and the library/program it is in are licensed and distributed, without warranty, under the GNU Affero GPL license, either version 3 of the License or (at your option) any later version. Please see COPYING for more information and the full license. | |
4 using System; | |
144
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
5 using NUnit.Framework; |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
6 using IBBoard.WarFoundry.API.Objects.Mock; |
120 | 7 using NUnit.Framework.SyntaxHelpers; |
8 | |
9 namespace IBBoard.WarFoundry.API.Objects.Requirement | |
10 { | |
11 [TestFixture()] | |
12 public class UnitRequiresNoMoreThanNOfUnitTypeRequirementTest | |
144
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
13 { |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
14 private MockRace mockRace; |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
15 private UnitType unitType1; |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
16 private UnitType unitType2; |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
17 private UnitType unitType3; |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
18 |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
19 [TestFixtureSetUp()] |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
20 public void SetupRace() |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
21 { |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
22 mockRace = new MockRace(); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
23 unitType1 = new MockUnitType("type1", "Unit Type 1"); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
24 mockRace.AddUnitType(unitType1); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
25 unitType2 = new MockUnitType("type2", "Unit Type 2"); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
26 mockRace.AddUnitType(unitType2); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
27 unitType3 = new MockUnitType("type3", "Unit Type 3"); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
28 mockRace.AddUnitType(unitType3); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
29 } |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
30 |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
31 [Test()] |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
32 public void TestAddingUnitWithNoUnitsAndOneUnitTypeRequiredIsAllowed() |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
33 { |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
34 Army army = new Army(mockRace, "Test", 1000); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
35 Unit unit = CreateUnitOfType(unitType1, army); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
36 RequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
37 req.AddUnitTypeRequirement(unitType2); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
38 Assert.That(req.AllowsAdding(unit, army), Is.EqualTo(Validation.Passed)); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
39 } |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
40 |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
41 [Test()] |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
42 public void TestAddingUnitWithOneUnitAndOneUnitTypeRequiredIsNotAllowed() |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
43 { |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
44 Army army = new Army(mockRace, "Test", 1000); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
45 AddUnitOfTypeToArmy(unitType2, army); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
46 Unit unit = CreateUnitOfType(unitType1, army); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
47 RequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
48 req.AddUnitTypeRequirement(unitType2); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
49 Assert.That(req.AllowsAdding(unit, army), Is.EqualTo(Validation.Failed)); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
50 } |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
51 |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
52 [Test()] |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
53 public void TestAddingUnitTypeWithNoUnitsAndOneUnitTypeRequiredIsAllowed() |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
54 { |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
55 Army army = new Army(mockRace, "Test", 1000); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
56 RequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
57 req.AddUnitTypeRequirement(unitType2); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
58 Assert.That(req.AllowsAdding(unitType1, army), Is.EqualTo(Validation.Passed)); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
59 } |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
60 |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
61 [Test()] |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
62 public void TestAddingUnitTypeWithOneUnitAndOneUnitTypeRequiredIsNotAllowed() |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
63 { |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
64 Army army = new Army(mockRace, "Test", 1000); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
65 AddUnitOfTypeToArmy(unitType2, army); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
66 RequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
67 req.AddUnitTypeRequirement(unitType2); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
68 Assert.That(req.AllowsAdding(unitType1, army), Is.EqualTo(Validation.Failed)); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
69 } |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
70 |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
71 [Test()] |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
72 public void TestAddingUnitTypeSetsLimit() |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
73 { |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
74 Army army = new Army(mockRace, "Test", 1000); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
75 AddUnitOfTypeToArmy(unitType2, army); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
76 RequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
77 req.AddUnitTypeRequirement(unitType2, 1); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
78 Assert.That(req.AllowsAdding(unitType1, army), Is.EqualTo(Validation.Passed)); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
79 } |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
80 |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
81 [Test()] |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
82 public void TestAddingUnitTypeSetsLimitForFailure() |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
83 { |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
84 Army army = new Army(mockRace, "Test", 1000); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
85 AddUnitOfTypeToArmy(unitType2, army); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
86 AddUnitOfTypeToArmy(unitType2, army); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
87 RequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
88 req.AddUnitTypeRequirement(unitType2, 1); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
89 Assert.That(req.AllowsAdding(unitType1, army), Is.EqualTo(Validation.Failed)); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
90 } |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
91 |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
92 [Test()] |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
93 public void TestAddingUnitTriggersFailure() |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
94 { |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
95 Army army = new Army(mockRace, "Test", 1000); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
96 AddUnitOfTypeToArmy(unitType2, army); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
97 RequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
98 req.AddUnitTypeRequirement(unitType2, 1); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
99 Assert.That(req.AllowsAdding(unitType1, army), Is.EqualTo(Validation.Passed)); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
100 AddUnitOfTypeToArmy(unitType2, army); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
101 Assert.That(req.AllowsAdding(unitType1, army), Is.EqualTo(Validation.Failed)); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
102 } |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
103 |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
104 [Test()] |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
105 public void TestAddingUnitTypeDefaultsToNoMoreThanZero() |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
106 { |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
107 Army army = new Army(mockRace, "Test", 1000); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
108 RequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
109 req.AddUnitTypeRequirement(unitType2); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
110 Assert.That(req.AllowsAdding(unitType1, army), Is.EqualTo(Validation.Passed)); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
111 AddUnitOfTypeToArmy(unitType2, army); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
112 Assert.That(req.AllowsAdding(unitType1, army), Is.EqualTo(Validation.Failed)); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
113 } |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
114 |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
115 [Test] |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
116 public void TestRequirementNotApplicableWhenLimitedUnitNotIncluded() |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
117 { |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
118 Army army = new Army(mockRace, "Test", 1000); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
119 RequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
120 req.AddUnitTypeRequirement(unitType2); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
121 Assert.That(req.AllowsAdding(unitType3, army), Is.EqualTo(Validation.NotApplicable)); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
122 Assert.That(req.AllowsAdding(unitType2, army), Is.EqualTo(Validation.NotApplicable)); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
123 } |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
124 |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
125 [Test] |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
126 public void TestRequirementBecomesInvalidWhenProhibitedUnitsChange() |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
127 { |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
128 Army army = new Army(mockRace, "Test", 1000); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
129 AddUnitOfTypeToArmy(unitType1, army); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
130 RequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
131 req.AddUnitTypeRequirement(unitType2); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
132 Assert.That(req.ValidatesArmy(army), Is.EqualTo(Validation.Passed)); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
133 AddUnitOfTypeToArmy(unitType2, army); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
134 Assert.That(req.ValidatesArmy(army), Is.EqualTo(Validation.Failed)); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
135 } |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
136 |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
137 [Test()] |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
138 public void TestAddingLimitedUnitTriggersFailure() |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
139 { |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
140 Army army = new Army(mockRace, "Test", 1000); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
141 AddUnitOfTypeToArmy(unitType1, army); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
142 RequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
143 req.AddUnitTypeRequirement(unitType2); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
144 Assert.That(req.AllowsAdding(unitType2, army), Is.EqualTo(Validation.Failed)); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
145 } |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
146 |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
147 [Test] |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
148 public void TestValidationMessageIsBlankForPass() |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
149 { |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
150 Army army = new Army(mockRace, "Test", 1000); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
151 RequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
152 req.AddUnitTypeRequirement(unitType2); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
153 Assert.That(req.GetValidationMessage(army), Is.Empty); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
154 } |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
155 |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
156 [Test] |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
157 public void TestValidationMessageIsCorrectForFailWithOneUnitProhibited() |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
158 { |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
159 Army army = new Army(mockRace, "Test", 1000); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
160 AddUnitOfTypeToArmy(unitType1, army); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
161 AddUnitOfTypeToArmy(unitType2, army); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
162 RequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
163 req.AddUnitTypeRequirement(unitType2); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
164 Assert.That(req.GetValidationMessage(army), Is.EqualTo("Army contains " + unitType1.Name + " and so cannot contain more than: 0 × " + unitType2.Name + " (have 1).")); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
165 } |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
166 |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
167 [Test] |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
168 public void TestValidationMessageIsCorrectForFailWithTwoOfOneUnitLimit() |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
169 { |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
170 Army army = new Army(mockRace, "Test", 1000); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
171 AddUnitOfTypeToArmy(unitType1, army); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
172 AddUnitOfTypeToArmy(unitType2, army); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
173 AddUnitOfTypeToArmy(unitType2, army); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
174 AddUnitOfTypeToArmy(unitType2, army); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
175 RequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
176 req.AddUnitTypeRequirement(unitType2, 2); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
177 Assert.That(req.GetValidationMessage(army), Is.EqualTo("Army contains " + unitType1.Name + " and so cannot contain more than: 2 × " + unitType2.Name + " (have 3).")); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
178 } |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
179 |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
180 [Test] |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
181 public void TestValidationMessageIsCorrectForFailWithTwoUnitsProhibited() |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
182 { |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
183 Army army = new Army(mockRace, "Test", 1000); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
184 AddUnitOfTypeToArmy(unitType1, army); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
185 AddUnitOfTypeToArmy(unitType2, army); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
186 RequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
187 req.AddUnitTypeRequirement(unitType2); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
188 req.AddUnitTypeRequirement(unitType3); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
189 Assert.That(req.GetValidationMessage(army), Is.EqualTo("Army contains " + unitType1.Name + " and so cannot contain more than: 0 × " + unitType2.Name + " (have 1).")); |
120 | 190 } |
191 | |
121 | 192 [Test] |
206
78ba834cb1f7
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
146
diff
changeset
|
193 public void TestValidationMessageIsCorrectForFailWithTwoUnitsProhibitedAndOtherUnitInArmy() |
121 | 194 { |
195 Army army = new Army(mockRace, "Test", 1000); | |
144
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
196 AddUnitOfTypeToArmy(unitType1, army); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
197 AddUnitOfTypeToArmy(unitType3, army); |
121 | 198 RequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
199 req.AddUnitTypeRequirement(unitType2); | |
144
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
200 req.AddUnitTypeRequirement(unitType3); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
201 Assert.That(req.GetValidationMessage(army), Is.EqualTo("Army contains " + unitType1.Name + " and so cannot contain more than: 0 × " + unitType3.Name + " (have 1).")); |
121 | 202 } |
203 | |
122 | 204 [Test] |
206
78ba834cb1f7
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
146
diff
changeset
|
205 public void TestValidationMessageIsCorrectForFailWithTwoUnitsProhibitedAndBothUnitsInArmy() |
122 | 206 { |
207 Army army = new Army(mockRace, "Test", 1000); | |
208 AddUnitOfTypeToArmy(unitType1, army); | |
144
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
209 AddUnitOfTypeToArmy(unitType2, army); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
210 AddUnitOfTypeToArmy(unitType3, army); |
122 | 211 RequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
212 req.AddUnitTypeRequirement(unitType2); | |
144
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
213 req.AddUnitTypeRequirement(unitType3); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
214 Assert.That(req.GetValidationMessage(army), Is.EqualTo("Army contains " + unitType1.Name + " and so cannot contain more than: 0 × " + unitType2.Name + " (have 1); 0 × " + unitType3.Name + " (have 1).")); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
215 } |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
216 |
146
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
217 [Test] |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
218 public void TestAllowsAddMessageIsBlankForPass() |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
219 { |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
220 Army army = new Army(mockRace, "Test", 1000); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
221 AddUnitOfTypeToArmy(unitType1, army); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
222 RequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
223 Assert.That(req.GetAllowsAddingMessage(unitType2, army), Is.Empty); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
224 } |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
225 |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
226 [Test] |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
227 public void TestAllowsAddMessageIsCorrectForFailWithOneUnitProhibited() |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
228 { |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
229 Army army = new Army(mockRace, "Test", 1000); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
230 AddUnitOfTypeToArmy(unitType1, army); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
231 RequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
232 req.AddUnitTypeRequirement(unitType2); |
206
78ba834cb1f7
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
146
diff
changeset
|
233 Assert.That(req.GetAllowsAddingMessage(unitType2, army), Is.EqualTo("Army would contain " + unitType1.Name + " and so cannot contain more than: 0 × " + unitType2.Name + " (would have 1).")); |
146
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
234 } |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
235 |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
236 [Test] |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
237 public void TestAllowsAddMessageIsCorrectForFailWithTwoOfOneUnitLimit() |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
238 { |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
239 Army army = new Army(mockRace, "Test", 1000); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
240 AddUnitOfTypeToArmy(unitType1, army); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
241 AddUnitOfTypeToArmy(unitType2, army); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
242 AddUnitOfTypeToArmy(unitType2, army); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
243 RequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
244 req.AddUnitTypeRequirement(unitType2, 2); |
206
78ba834cb1f7
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
146
diff
changeset
|
245 Assert.That(req.GetAllowsAddingMessage(unitType2, army), Is.EqualTo("Army would contain " + unitType1.Name + " and so cannot contain more than: 2 × " + unitType2.Name + " (would have 3).")); |
146
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
246 } |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
247 |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
248 [Test] |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
249 public void TestAllowsAddMessageIsCorrectForFailWithTwoUnitsProhibited() |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
250 { |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
251 Army army = new Army(mockRace, "Test", 1000); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
252 AddUnitOfTypeToArmy(unitType1, army); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
253 RequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
254 req.AddUnitTypeRequirement(unitType2); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
255 req.AddUnitTypeRequirement(unitType3); |
206
78ba834cb1f7
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
146
diff
changeset
|
256 Assert.That(req.GetAllowsAddingMessage(unitType2, army), Is.EqualTo("Army would contain " + unitType1.Name + " and so cannot contain more than: 0 × " + unitType2.Name + " (would have 1).")); |
146
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
257 } |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
258 |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
259 [Test] |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
260 public void TestAllowsAddMessageIsCorrectForFailWithTwoUnitsProhibitedAndOneUnitInArmy() |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
261 { |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
262 Army army = new Army(mockRace, "Test", 1000); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
263 AddUnitOfTypeToArmy(unitType1, army); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
264 AddUnitOfTypeToArmy(unitType2, army); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
265 RequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
266 req.AddUnitTypeRequirement(unitType2); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
267 req.AddUnitTypeRequirement(unitType3); |
206
78ba834cb1f7
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
146
diff
changeset
|
268 Assert.That(req.GetAllowsAddingMessage(unitType3, army), Is.EqualTo("Army would contain " + unitType1.Name + " and so cannot contain more than: 0 × " + unitType2.Name + " (would have 1); 0 × " + unitType3.Name + " (would have 1).")); |
146
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
269 } |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
270 |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
271 [Test] |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
272 public void TestAllowsAddMessageIsCorrectForFailWithTwoUnitsProhibitedAndOtherUnitInArmy() |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
273 { |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
274 Army army = new Army(mockRace, "Test", 1000); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
275 AddUnitOfTypeToArmy(unitType1, army); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
276 AddUnitOfTypeToArmy(unitType3, army); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
277 RequiresNoMoreThanNOfUnitTypeRequirement req = new UnitRequiresNoMoreThanNOfUnitTypeRequirement(unitType1); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
278 req.AddUnitTypeRequirement(unitType2); |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
279 req.AddUnitTypeRequirement(unitType3); |
206
78ba834cb1f7
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
146
diff
changeset
|
280 Assert.That(req.GetAllowsAddingMessage(unitType2, army), Is.EqualTo("Army would contain " + unitType1.Name + " and so cannot contain more than: 0 × " + unitType2.Name + " (would have 1); 0 × " + unitType3.Name + " (would have 1).")); |
146
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
281 } |
8c519a44e699
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
144
diff
changeset
|
282 |
144
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
283 private static void AddUnitOfTypeToArmy(UnitType unitType, Army army) |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
284 { |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
285 army.AddUnit(CreateUnitOfType(unitType, army)); |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
286 } |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
287 |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
288 private static Unit CreateUnitOfType(UnitType unitType, Army army) |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
289 { |
eced294e82f2
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
290 return new Unit(unitType, army.GetCategory(unitType.MainCategory)); |
120 | 291 } |
292 } | |
293 } | |
294 |