Mercurial > repos > IBBoard.WarFoundry.API.Tests
annotate API/Objects/Requirement/UnitCountRequirementDataTest.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 | |
children | 2ae80631ec9c |
rev | line source |
---|---|
137
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
1 // This file (UnitCountRequirementDataTest.cs) is a part of the IBBoard.WarFoundry.API.Tests project and is copyright 2011 IBBoard |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
2 // |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
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. |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
4 using System; |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
5 using NUnit.Framework; |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
6 using IBBoard.NUnit; |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
7 using IBBoard.WarFoundry.API.Objects.Mock; |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
8 using IBBoard.WarFoundry.API.Factories; |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
9 using System.Reflection; |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
10 |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
11 namespace IBBoard.WarFoundry.API.Objects.Requirement |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
12 { |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
13 [TestFixture()] |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
14 public class UnitCountRequirementDataTest : AbstractEqualityTest<UnitCountRequirementData> |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
15 { |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
16 //FIXME We shouldn't duplicate these tests, but it is broken at the moment |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
17 [Test] |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
18 public void TestEquality() |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
19 { |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
20 Assert.AreEqual(GetObject(), GetSameObject()); |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
21 Assert.AreEqual(GetSameObject(), GetObject()); |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
22 } |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
23 |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
24 [Test] |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
25 public void TestInequality() |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
26 { |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
27 Assert.AreNotEqual(GetObject(), GetDifferentObject()); |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
28 Assert.AreNotEqual(GetSameObject(), GetDifferentObject()); |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
29 Assert.AreNotEqual(GetDifferentObject(), GetObject()); |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
30 Assert.AreNotEqual(GetDifferentObject(), GetSameObject()); |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
31 } |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
32 |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
33 [Test] |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
34 public void TestReflexiveEquality() |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
35 { |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
36 Assert.AreEqual(GetObject(), GetObject()); |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
37 Assert.AreEqual(GetSameObject(), GetSameObject()); |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
38 Assert.AreEqual(GetDifferentObject(), GetDifferentObject()); |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
39 } |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
40 |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
41 [Test] |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
42 public void TestOtherInequality() |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
43 { |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
44 MethodInfo[] methodInfo = GetType().GetMethods(); |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
45 UnitCountRequirementData obj = GetObject(); |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
46 |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
47 foreach (MethodInfo method in methodInfo) |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
48 { |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
49 if (method.Name.StartsWith("GetOtherDifferent")) |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
50 { |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
51 UnitCountRequirementData otherObj = (UnitCountRequirementData)method.Invoke(this, new object[0]); |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
52 Assert.AreNotEqual(obj, otherObj, "Objects equal for "+method.Name); |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
53 Assert.AreNotEqual(otherObj, obj, "Objects equal for "+method.Name); |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
54 } |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
55 } |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
56 } |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
57 |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
58 |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
59 |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
60 public override UnitCountRequirementData GetObject () |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
61 { |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
62 return new UnitCountRequirementData(new MockUnitType(), 1); |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
63 } |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
64 |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
65 public override UnitCountRequirementData GetSameObject () |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
66 { |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
67 return new UnitCountRequirementData(new MockUnitType(), 1); |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
68 } |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
69 |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
70 public override UnitCountRequirementData GetDifferentObject () |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
71 { |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
72 DummyWarFoundryFactory factory = new DummyWarFoundryFactory(); |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
73 GameSystem gameSystem = new GameSystem("system", "system", factory); |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
74 Race race = new Race("race", "race", gameSystem, factory); |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
75 return new UnitCountRequirementData(new UnitType("id9", "some name", race), 2); |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
76 } |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
77 } |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
78 } |
081b48413f6d
Re #140: Add equality methods to WarFoundry objects
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
79 |