using NUnit.Framework; using System.Linq; namespace Encompass { namespace Tests { class MockComponent : Component { public string myString; public int myInt; } public class EntityTest { [Test] public void AddComponent() { var world = new World(); var entity = world.CreateEntity(); var mockComponent = entity.AddComponent(); mockComponent.myString = "hello"; mockComponent.myInt = 3; world.Update(); Assert.IsTrue(entity.HasComponent()); Assert.AreEqual(mockComponent, entity.GetComponent()); } [Test] public void GetComponents() { var world = new World(); var entity = world.CreateEntity(); var mockComponentA = entity.AddComponent(); var mockComponentB = entity.AddComponent(); var mockComponentC = entity.AddComponent(); world.Update(); Assert.Contains(mockComponentA, entity.GetComponents().ToList()); Assert.Contains(mockComponentB, entity.GetComponents().ToList()); Assert.Contains(mockComponentC, entity.GetComponents().ToList()); } [Test] public void GetComponent() { var world = new World(); var entity = world.CreateEntity(); var mockComponent = entity.AddComponent(); mockComponent.myString = "hello"; mockComponent.myInt = 3; world.Update(); Assert.AreEqual(mockComponent, entity.GetComponent()); } [Test] public void HasComponent() { var world = new World(); var entity = world.CreateEntity(); var mockComponent = entity.AddComponent(); world.Update(); Assert.IsTrue(entity.HasComponent()); } } } }