Mercurial > repos > IBDev-IBBoard.WarFoundry.API.Tests
comparison API/Objects/RaceTests.cs @ 137:081b48413f6d
Re #140: Add equality methods to WarFoundry objects
* Add equality to Race, GameSystem and UnitType tests
* Create equality test for UnitCountRequirementData
Not all tests pass yet
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Tue, 26 Apr 2011 15:03:46 +0000 |
parents | 95dac00e9330 |
children | 3e4864e206ea |
comparison
equal
deleted
inserted
replaced
136:d28c3c1ec1ec | 137:081b48413f6d |
---|---|
5 using NUnit.Framework; | 5 using NUnit.Framework; |
6 using IBBoard.WarFoundry.API.Objects.Mock; | 6 using IBBoard.WarFoundry.API.Objects.Mock; |
7 using NUnit.Framework.SyntaxHelpers; | 7 using NUnit.Framework.SyntaxHelpers; |
8 using IBBoard.WarFoundry.API.Objects.Requirement; | 8 using IBBoard.WarFoundry.API.Objects.Requirement; |
9 using System.Collections.Generic; | 9 using System.Collections.Generic; |
10 using IBBoard.NUnit; | |
11 using System.Reflection; | |
12 using IBBoard.WarFoundry.API.Factories; | |
10 | 13 |
11 namespace IBBoard.WarFoundry.API.Objects | 14 namespace IBBoard.WarFoundry.API.Objects |
12 { | 15 { |
13 [TestFixture()] | 16 [TestFixture()] |
14 public class RaceTests | 17 public class RaceTests : AbstractEqualityTest<Race> |
15 { | 18 { |
19 //FIXME We shouldn't duplicate these tests, but it is broken at the moment | |
20 [Test] | |
21 public void TestEquality() | |
22 { | |
23 Assert.AreEqual(GetObject(), GetSameObject()); | |
24 Assert.AreEqual(GetSameObject(), GetObject()); | |
25 } | |
26 | |
27 [Test] | |
28 public void TestInequality() | |
29 { | |
30 Assert.AreNotEqual(GetObject(), GetDifferentObject()); | |
31 Assert.AreNotEqual(GetSameObject(), GetDifferentObject()); | |
32 Assert.AreNotEqual(GetDifferentObject(), GetObject()); | |
33 Assert.AreNotEqual(GetDifferentObject(), GetSameObject()); | |
34 } | |
35 | |
36 [Test] | |
37 public void TestReflexiveEquality() | |
38 { | |
39 Assert.AreEqual(GetObject(), GetObject()); | |
40 Assert.AreEqual(GetSameObject(), GetSameObject()); | |
41 Assert.AreEqual(GetDifferentObject(), GetDifferentObject()); | |
42 } | |
43 | |
44 [Test] | |
45 public void TestOtherInequality() | |
46 { | |
47 MethodInfo[] methodInfo = GetType().GetMethods(); | |
48 Race obj = GetObject(); | |
49 | |
50 foreach (MethodInfo method in methodInfo) | |
51 { | |
52 if (method.Name.StartsWith("GetOtherDifferent")) | |
53 { | |
54 Race otherObj = (Race)method.Invoke(this, new object[0]); | |
55 Assert.AreNotEqual(obj, otherObj, "Objects equal for "+method.Name); | |
56 Assert.AreNotEqual(otherObj, obj, "Objects equal for "+method.Name); | |
57 } | |
58 } | |
59 } | |
60 | |
61 | |
62 | |
63 | |
16 [Test()] | 64 [Test()] |
17 public void TestRaceWithNoUnitTypesHasNoRequirements() | 65 public void TestRaceWithNoUnitTypesHasNoRequirements() |
18 { | 66 { |
19 Assert.That(new MockRace().GetRequirements(), Has.Count(0)); | 67 Assert.That(new MockRace().GetRequirements(), Has.Count(0)); |
20 } | 68 } |
58 Assert.That(raceRequirements, Has.Count(3)); | 106 Assert.That(raceRequirements, Has.Count(3)); |
59 Assert.That(raceRequirements, Has.Member(unitRequirement1)); | 107 Assert.That(raceRequirements, Has.Member(unitRequirement1)); |
60 Assert.That(raceRequirements, Has.Member(unitRequirement2)); | 108 Assert.That(raceRequirements, Has.Member(unitRequirement2)); |
61 Assert.That(raceRequirements, Has.Member(unitRequirement3)); | 109 Assert.That(raceRequirements, Has.Member(unitRequirement3)); |
62 } | 110 } |
111 | |
112 public override Race GetObject () | |
113 { | |
114 DummyWarFoundryFactory factory = new DummyWarFoundryFactory(); | |
115 GameSystem gameSystem = new GameSystem("system", "system", factory); | |
116 return new Race("race", "race", gameSystem, factory); | |
117 } | |
118 | |
119 public override Race GetSameObject () | |
120 { | |
121 DummyWarFoundryFactory factory = new DummyWarFoundryFactory(); | |
122 GameSystem gameSystem = new GameSystem("system", "system", factory); | |
123 return new Race("race", "race", gameSystem, factory); | |
124 } | |
125 | |
126 public override Race GetDifferentObject () | |
127 { | |
128 DummyWarFoundryFactory factory = new DummyWarFoundryFactory(); | |
129 GameSystem gameSystem = new GameSystem("system2", "another system", factory); | |
130 return new Race("race2", "other race", gameSystem, factory); | |
131 } | |
63 } | 132 } |
64 } | 133 } |
65 | 134 |