From 4b9610762a096f5f1137970c636a6583380a84c5 Mon Sep 17 00:00:00 2001 From: Evan Hemsley Date: Fri, 14 Jun 2019 18:13:24 -0700 Subject: [PATCH] read component tests --- test/EngineTest.cs | 59 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 57 insertions(+), 2 deletions(-) diff --git a/test/EngineTest.cs b/test/EngineTest.cs index c9a24c2..5469933 100644 --- a/test/EngineTest.cs +++ b/test/EngineTest.cs @@ -3,13 +3,15 @@ using System.Linq; using Encompass; using System.Collections.Generic; +using System; namespace Tests { public class EngineTest { static IEnumerable components; + static MockComponent component; - public class TestEngine : Engine + public class ReadComponentsTestEngine : Engine { public override void Update(float dt) { @@ -17,11 +19,19 @@ namespace Tests { } } + public class ReadComponentTestEngine : Engine + { + public override void Update(float dt) + { + component = this.ReadComponent(); + } + } + [Test] public void ReadComponents() { var worldBuilder = new WorldBuilder(); - worldBuilder.AddEngine(); + worldBuilder.AddEngine(); var entity = worldBuilder.CreateEntity(); @@ -43,5 +53,50 @@ namespace Tests { Assert.Contains(mockComponent, components.ToList()); Assert.Contains(mockComponentB, components.ToList()); } + + [Test] + public void ReadComponent() + { + var worldBuilder = new WorldBuilder(); + worldBuilder.AddEngine(); + + var entity = worldBuilder.CreateEntity(); + + MockComponent mockComponent; + mockComponent.myInt = 0; + mockComponent.myString = "hello"; + + entity.AddComponent(mockComponent); + + var world = worldBuilder.Build(); + + world.Update(0.01f); + + Assert.AreEqual(mockComponent, component); + } + + [Test] + public void ReadComponentWhenMultipleComponents() + { + var worldBuilder = new WorldBuilder(); + worldBuilder.AddEngine(); + + var entity = worldBuilder.CreateEntity(); + + MockComponent mockComponent; + mockComponent.myInt = 0; + mockComponent.myString = "hello"; + + MockComponent mockComponentB; + mockComponentB.myInt = 1; + mockComponentB.myString = "howdy"; + + entity.AddComponent(mockComponent); + entity.AddComponent(mockComponentB); + + var world = worldBuilder.Build(); + + Assert.Throws(() => world.Update(0.01f)); + } } }