using NUnit.Framework; using System.Linq; namespace Encompass { namespace Tests { struct MockComponent : IComponent { public string myString; public int myInt; } public class EntityTest { [Test] public void AddComponent() { var world = new World(); var entity = world.CreateEntity(); MockComponent mockComponent; mockComponent.myInt = 3; mockComponent.myString = "hello"; entity.AddComponent(mockComponent); world.Update(); Assert.IsTrue(entity.HasComponent()); Assert.AreEqual(mockComponent, entity.GetComponent()); } [Test] public void GetComponents() { var world = new World(); var entity = world.CreateEntity(); MockComponent mockComponentA; mockComponentA.myInt = 3; mockComponentA.myString = "hello"; MockComponent mockComponentB; mockComponentB.myInt = 5; mockComponentB.myString = "wassup"; MockComponent mockComponentC; mockComponentC.myInt = 1; mockComponentC.myString = "howdy"; entity.AddComponent(mockComponentA); entity.AddComponent(mockComponentB); entity.AddComponent(mockComponentC); 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(); MockComponent mockComponent; mockComponent.myInt = 3; mockComponent.myString = "hello"; entity.AddComponent(mockComponent); world.Update(); Assert.AreEqual(mockComponent, entity.GetComponent()); } [Test] public void HasComponent() { var world = new World(); var entity = world.CreateEntity(); MockComponent mockComponent; mockComponent.myInt = 3; mockComponent.myString = "hello"; entity.AddComponent(mockComponent); world.Update(); Assert.IsTrue(entity.HasComponent()); } } } }