From b889675c83a55e65d98f259a1ea42f6246e56af9 Mon Sep 17 00:00:00 2001 From: atlimit8 Date: Sat, 19 Sep 2015 14:48:49 -0500 Subject: [PATCH] ActorInfoTest fixup with new ActorInfo ctor --- OpenRA.Game/GameRules/ActorInfo.cs | 7 ++++ OpenRA.Test/OpenRA.Game/ActorInfoTest.cs | 42 +++++++++--------------- 2 files changed, 23 insertions(+), 26 deletions(-) diff --git a/OpenRA.Game/GameRules/ActorInfo.cs b/OpenRA.Game/GameRules/ActorInfo.cs index 7debba67cb..2666ee402a 100644 --- a/OpenRA.Game/GameRules/ActorInfo.cs +++ b/OpenRA.Game/GameRules/ActorInfo.cs @@ -67,6 +67,13 @@ namespace OpenRA } } + public ActorInfo(string name, params ITraitInfo[] traitInfos) + { + Name = name; + foreach (var t in traitInfos) + Traits.Add(t); + } + static Dictionary GetParents(MiniYaml node, Dictionary allUnits) { return node.Nodes.Where(n => n.Key == "Inherits" || n.Key.StartsWith("Inherits@")) diff --git a/OpenRA.Test/OpenRA.Game/ActorInfoTest.cs b/OpenRA.Test/OpenRA.Game/ActorInfoTest.cs index 5aa28e23df..d84023005b 100644 --- a/OpenRA.Test/OpenRA.Game/ActorInfoTest.cs +++ b/OpenRA.Test/OpenRA.Game/ActorInfoTest.cs @@ -18,48 +18,40 @@ using OpenRA.Traits; namespace OpenRA.Test { + interface IMock : ITraitInfo { } + class MockTraitInfo : ITraitInfo { public object Create(ActorInitializer init) { return null; } } + class MockInheritInfo : MockTraitInfo { } + class MockAInfo : MockInheritInfo, IMock { } + class MockBInfo : MockTraitInfo, Requires, Requires, Requires { } + class MockCInfo : MockTraitInfo, Requires { } + class MockDInfo : MockTraitInfo, Requires { } + class MockEInfo : MockTraitInfo, Requires { } + class MockFInfo : MockTraitInfo, Requires { } + [TestFixture] public class ActorInfoTest { - ActorInfo actorInfo; - Dictionary allUnits; - - interface IMock : ITraitInfo { } - class MockTrait : ITraitInfo { public object Create(ActorInitializer init) { return null; } } - class MockInherit : MockTrait { } - class MockA : MockInherit, IMock { } - class MockB : MockTrait, Requires, Requires, Requires { } - class MockC : MockTrait, Requires { } - class MockD : MockTrait, Requires { } - class MockE : MockTrait, Requires { } - class MockF : MockTrait, Requires { } - [SetUp] public void SetUp() { - allUnits = new Dictionary(); - actorInfo = new ActorInfo("", new MiniYaml(""), allUnits); } [TestCase(TestName = "Sort traits in order of dependency")] public void TraitsInConstructOrderA() { - actorInfo.Traits.Add(new MockC()); - actorInfo.Traits.Add(new MockB()); - actorInfo.Traits.Add(new MockA()); + var actorInfo = new ActorInfo("test", new MockCInfo(), new MockBInfo(), new MockAInfo()); var i = new List(actorInfo.TraitsInConstructOrder()); - Assert.That(i[0], Is.InstanceOf()); - Assert.That(i[1], Is.InstanceOf()); - Assert.That(i[2], Is.InstanceOf()); + Assert.That(i[0], Is.InstanceOf()); + Assert.That(i[1].GetType().Name, Is.EqualTo("MockBInfo")); + Assert.That(i[2].GetType().Name, Is.EqualTo("MockCInfo")); } [TestCase(TestName = "Exception reports missing dependencies")] public void TraitsInConstructOrderB() { - actorInfo.Traits.Add(new MockB()); - actorInfo.Traits.Add(new MockC()); + var actorInfo = new ActorInfo("test", new MockBInfo(), new MockCInfo()); try { @@ -79,9 +71,7 @@ namespace OpenRA.Test [TestCase(TestName = "Exception reports cyclic dependencies")] public void TraitsInConstructOrderC() { - actorInfo.Traits.Add(new MockD()); - actorInfo.Traits.Add(new MockE()); - actorInfo.Traits.Add(new MockF()); + var actorInfo = new ActorInfo("test", new MockDInfo(), new MockEInfo(), new MockFInfo()); try {