comparison API/Objects/GameSystemTest.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 168c5aab34bb
children 2ae80631ec9c
comparison
equal deleted inserted replaced
136:d28c3c1ec1ec 137:081b48413f6d
1 using System; 1 using System;
2 using NUnit.Framework; 2 using NUnit.Framework;
3 using IBBoard.WarFoundry.API.Factories; 3 using IBBoard.WarFoundry.API.Factories;
4 using NUnit.Framework.SyntaxHelpers; 4 using NUnit.Framework.SyntaxHelpers;
5 using System.Reflection;
6 using IBBoard.NUnit;
5 7
6 namespace IBBoard.WarFoundry.API.Objects 8 namespace IBBoard.WarFoundry.API.Objects
7 { 9 {
8 [TestFixture()] 10 [TestFixture()]
9 public class GameSystemTest 11 public class GameSystemTest : AbstractEqualityTest<GameSystem>
10 { 12 {
13 //FIXME We shouldn't duplicate these tests, but it is broken at the moment
14 [Test]
15 public void TestEquality()
16 {
17 Assert.AreEqual(GetObject(), GetSameObject());
18 Assert.AreEqual(GetSameObject(), GetObject());
19 }
20
21 [Test]
22 public void TestInequality()
23 {
24 Assert.AreNotEqual(GetObject(), GetDifferentObject());
25 Assert.AreNotEqual(GetSameObject(), GetDifferentObject());
26 Assert.AreNotEqual(GetDifferentObject(), GetObject());
27 Assert.AreNotEqual(GetDifferentObject(), GetSameObject());
28 }
29
30 [Test]
31 public void TestReflexiveEquality()
32 {
33 Assert.AreEqual(GetObject(), GetObject());
34 Assert.AreEqual(GetSameObject(), GetSameObject());
35 Assert.AreEqual(GetDifferentObject(), GetDifferentObject());
36 }
37
38 [Test]
39 public void TestOtherInequality()
40 {
41 MethodInfo[] methodInfo = GetType().GetMethods();
42 GameSystem obj = GetObject();
43
44 foreach (MethodInfo method in methodInfo)
45 {
46 if (method.Name.StartsWith("GetOtherDifferent"))
47 {
48 GameSystem otherObj = (GameSystem)method.Invoke(this, new object[0]);
49 Assert.AreNotEqual(obj, otherObj, "Objects equal for "+method.Name);
50 Assert.AreNotEqual(otherObj, obj, "Objects equal for "+method.Name);
51 }
52 }
53 }
54
55
56
57
11 [Test()] 58 [Test()]
12 public void TestPointsSingularAbbreviation () 59 public void TestPointsSingularAbbreviation ()
13 { 60 {
14 GameSystem system = new GameSystem("id", "name", new DummyWarFoundryFactory()); 61 GameSystem system = new GameSystem("id", "name", new DummyWarFoundryFactory());
15 Assert.That(system.GetPointsAbbrev(1), Is.EqualTo("")); 62 Assert.That(system.GetPointsAbbrev(1), Is.EqualTo(""));
119 GameSystem system = new GameSystem("id", "name", new DummyWarFoundryFactory()); 166 GameSystem system = new GameSystem("id", "name", new DummyWarFoundryFactory());
120 Assert.That(system.GetPointsAbbrev(0), Is.EqualTo("")); 167 Assert.That(system.GetPointsAbbrev(0), Is.EqualTo(""));
121 system.SystemPtsAbbrevSingle = "pt"; 168 system.SystemPtsAbbrevSingle = "pt";
122 Assert.That(system.GetPointsAbbrev(0), Is.EqualTo("pt")); 169 Assert.That(system.GetPointsAbbrev(0), Is.EqualTo("pt"));
123 } 170 }
171
172 public override GameSystem GetObject ()
173 {
174 DummyWarFoundryFactory factory = new DummyWarFoundryFactory();
175 return new GameSystem("system", "system", factory);
176 }
177
178 public override GameSystem GetSameObject ()
179 {
180 DummyWarFoundryFactory factory = new DummyWarFoundryFactory();
181 return new GameSystem("system", "system", factory);
182 }
183
184 public override GameSystem GetDifferentObject ()
185 {
186 DummyWarFoundryFactory factory = new DummyWarFoundryFactory();
187 return new GameSystem("system2", "another system", factory);
188 }
124 } 189 }
125 } 190 }
126 191