133
|
1 // This file (RequirementHandlerTests.cs) is a part of the IBBoard.WarFoundry.API.Tests project and is copyright 2011 IBBoard
|
|
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;
|
|
5 using NUnit.Framework;
|
|
6 using IBBoard.WarFoundry.API.Objects.Mock;
|
|
7 using IBBoard.WarFoundry.API.Objects;
|
|
8 using NUnit.Framework.SyntaxHelpers;
|
|
9 using IBBoard.WarFoundry.API.Objects.Requirement.Mock;
|
|
10
|
|
11 namespace IBBoard.WarFoundry.API.Objects.Requirement
|
|
12 {
|
|
13 [TestFixture()]
|
|
14 public class RequirementHandlerTests
|
|
15 {
|
|
16 [Test()]
|
|
17 public void TestArmyWithNoRequirementsValidates()
|
|
18 {
|
|
19 MockRace race = new MockRace();
|
|
20 Army army = new Army(race, "test", 1000);
|
|
21 Assert.That(RequirementHandler.ValidateArmy(army), Is.EqualTo(Validation.Passed));
|
|
22 }
|
|
23
|
|
24 [Test()]
|
|
25 public void TestArmyWithFailingRequirementFails()
|
|
26 {
|
|
27 MockRace race = new MockRace();
|
|
28 MockUnitType mockUnitType = new MockUnitType();
|
|
29 mockUnitType.AddRequirement(new FailingRequirement());
|
|
30 race.AddUnitType(mockUnitType);
|
|
31 Army army = new Army(race, "test", 1000);
|
|
32 Assert.That(RequirementHandler.ValidateArmy(army), Is.EqualTo(Validation.Failed));
|
|
33 }
|
|
34
|
|
35 [Test()]
|
|
36 public void TestArmyWithPassingRequirementPasses()
|
|
37 {
|
|
38 MockRace race = new MockRace();
|
|
39 MockUnitType mockUnitType = new MockUnitType();
|
|
40 mockUnitType.AddRequirement(new PassingRequirement());
|
|
41 race.AddUnitType(mockUnitType);
|
|
42 Army army = new Army(race, "test", 1000);
|
|
43 Assert.That(RequirementHandler.ValidateArmy(army), Is.EqualTo(Validation.Passed));
|
|
44 }
|
|
45
|
|
46 [Test()]
|
|
47 public void TestArmyWithNotApplicableRequirementPasses()
|
|
48 {
|
|
49 MockRace race = new MockRace();
|
|
50 MockUnitType mockUnitType = new MockUnitType();
|
|
51 mockUnitType.AddRequirement(new NotApplicableRequirement());
|
|
52 race.AddUnitType(mockUnitType);
|
|
53 Army army = new Army(race, "test", 1000);
|
|
54 Assert.That(RequirementHandler.ValidateArmy(army), Is.EqualTo(Validation.Passed));
|
|
55 }
|
135
|
56
|
|
57 [Test()]
|
|
58 public void TestArmyWithMixedRequirementsWithFailFails()
|
|
59 {
|
|
60 MockRace race = new MockRace();
|
|
61 MockUnitType mockUnitType = new MockUnitType();
|
|
62 mockUnitType.AddRequirement(new PassingRequirement());
|
|
63 mockUnitType.AddRequirement(new FailingRequirement());
|
|
64 race.AddUnitType(mockUnitType);
|
|
65 Army army = new Army(race, "test", 1000);
|
|
66 Assert.That(RequirementHandler.ValidateArmy(army), Is.EqualTo(Validation.Failed));
|
|
67 }
|
|
68
|
|
69 [Test()]
|
|
70 public void TestArmyWithMixedRequirementsWithFailInOtherOrderFails()
|
|
71 {
|
|
72 MockRace race = new MockRace();
|
|
73 MockUnitType mockUnitType = new MockUnitType();
|
|
74 mockUnitType.AddRequirement(new FailingRequirement());
|
|
75 mockUnitType.AddRequirement(new PassingRequirement());
|
|
76 race.AddUnitType(mockUnitType);
|
|
77 Army army = new Army(race, "test", 1000);
|
|
78 Assert.That(RequirementHandler.ValidateArmy(army), Is.EqualTo(Validation.Failed));
|
|
79 }
|
|
80
|
|
81 [Test()]
|
|
82 public void TestArmyWithMixedRequirementsWithNoFailsPasses()
|
|
83 {
|
|
84 MockRace race = new MockRace();
|
|
85 MockUnitType mockUnitType = new MockUnitType();
|
|
86 mockUnitType.AddRequirement(new PassingRequirement());
|
|
87 mockUnitType.AddRequirement(new NotApplicableRequirement());
|
|
88 race.AddUnitType(mockUnitType);
|
|
89 Army army = new Army(race, "test", 1000);
|
|
90 Assert.That(RequirementHandler.ValidateArmy(army), Is.EqualTo(Validation.Passed));
|
|
91 }
|
|
92
|
|
93 [Test()]
|
|
94 public void TestCanAddToArmyWithNoRequirementsValidates()
|
|
95 {
|
|
96 MockRace race = new MockRace();
|
|
97 Army army = new Army(race, "test", 1000);
|
|
98 Assert.That(RequirementHandler.AllowsAdding(new MockUnitType(), army), Is.EqualTo(Validation.Passed));
|
|
99 }
|
|
100
|
|
101 [Test()]
|
|
102 public void TestCanAddToArmyWithFailingRequirementFails()
|
|
103 {
|
|
104 MockRace race = new MockRace();
|
|
105 MockUnitType mockUnitType = new MockUnitType();
|
|
106 mockUnitType.AddRequirement(new FailingRequirement());
|
|
107 race.AddUnitType(mockUnitType);
|
|
108 Army army = new Army(race, "test", 1000);
|
|
109 Assert.That(RequirementHandler.AllowsAdding(mockUnitType, army), Is.EqualTo(Validation.Failed));
|
|
110 }
|
|
111
|
|
112 [Test()]
|
|
113 public void TestCanAddToArmyWithPassingRequirementPasses()
|
|
114 {
|
|
115 MockRace race = new MockRace();
|
|
116 MockUnitType mockUnitType = new MockUnitType();
|
|
117 mockUnitType.AddRequirement(new PassingRequirement());
|
|
118 race.AddUnitType(mockUnitType);
|
|
119 Army army = new Army(race, "test", 1000);
|
|
120 Assert.That(RequirementHandler.AllowsAdding(mockUnitType, army), Is.EqualTo(Validation.Passed));
|
|
121 }
|
|
122
|
|
123 [Test()]
|
|
124 public void TestCanAddToArmyWithNotApplicableRequirementPasses()
|
|
125 {
|
|
126 MockRace race = new MockRace();
|
|
127 MockUnitType mockUnitType = new MockUnitType();
|
|
128 mockUnitType.AddRequirement(new NotApplicableRequirement());
|
|
129 race.AddUnitType(mockUnitType);
|
|
130 Army army = new Army(race, "test", 1000);
|
|
131 Assert.That(RequirementHandler.AllowsAdding(mockUnitType, army), Is.EqualTo(Validation.Passed));
|
|
132 }
|
|
133
|
|
134 [Test()]
|
|
135 public void TestCanAddToArmyWithMixedRequirementsWithFailFails()
|
|
136 {
|
|
137 MockRace race = new MockRace();
|
|
138 MockUnitType mockUnitType = new MockUnitType();
|
|
139 mockUnitType.AddRequirement(new PassingRequirement());
|
|
140 mockUnitType.AddRequirement(new FailingRequirement());
|
|
141 race.AddUnitType(mockUnitType);
|
|
142 Army army = new Army(race, "test", 1000);
|
|
143 Assert.That(RequirementHandler.AllowsAdding(mockUnitType, army), Is.EqualTo(Validation.Failed));
|
|
144 }
|
|
145
|
|
146 [Test()]
|
|
147 public void TestCanAddToArmyWithMixedRequirementsWithFailInOtherOrderFails()
|
|
148 {
|
|
149 MockRace race = new MockRace();
|
|
150 MockUnitType mockUnitType = new MockUnitType();
|
|
151 mockUnitType.AddRequirement(new FailingRequirement());
|
|
152 mockUnitType.AddRequirement(new PassingRequirement());
|
|
153 race.AddUnitType(mockUnitType);
|
|
154 Army army = new Army(race, "test", 1000);
|
|
155 Assert.That(RequirementHandler.AllowsAdding(mockUnitType, army), Is.EqualTo(Validation.Failed));
|
|
156 }
|
|
157
|
|
158 [Test()]
|
|
159 public void TestCanAddToArmyWithMixedRequirementsWithNoFailsPasses()
|
|
160 {
|
|
161 MockRace race = new MockRace();
|
|
162 MockUnitType mockUnitType = new MockUnitType();
|
|
163 mockUnitType.AddRequirement(new PassingRequirement());
|
|
164 mockUnitType.AddRequirement(new NotApplicableRequirement());
|
|
165 race.AddUnitType(mockUnitType);
|
|
166 Army army = new Army(race, "test", 1000);
|
|
167 Assert.That(RequirementHandler.AllowsAdding(mockUnitType, army), Is.EqualTo(Validation.Passed));
|
|
168 }
|
133
|
169 }
|
|
170 }
|
|
171
|