using NUnit.Framework; using FluentAssertions; using System.Linq; using Encompass; using System.Collections.Generic; using System; namespace Tests { struct MockComponent : IComponent { public string myString; public int myInt; } public class EntityTest { [Test] public void AddComponent() { var worldBuilder = new WorldBuilder(); var entity = worldBuilder.CreateEntity(); MockComponent mockComponent; mockComponent.myInt = 3; mockComponent.myString = "hello"; entity.AddComponent(mockComponent); var world = worldBuilder.Build(); // world.Update(); Assert.IsTrue(entity.HasComponent()); Assert.That(entity.GetComponent().Value, Is.EqualTo(mockComponent)); } [Test] public void GetComponents() { var worldBuilder = new WorldBuilder(); var entity = worldBuilder.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"; var componentAID = entity.AddComponent(mockComponentA); var componentBID = entity.AddComponent(mockComponentB); var componentCID = entity.AddComponent(mockComponentC); var world = worldBuilder.Build(); var components = entity.GetComponents(); components.Should().Contain(new KeyValuePair(componentAID, mockComponentA)); components.Should().Contain(new KeyValuePair(componentBID, mockComponentB)); components.Should().Contain(new KeyValuePair(componentCID, mockComponentC)); } [Test] public void GetComponent() { var worldBuilder = new WorldBuilder(); var entity = worldBuilder.CreateEntity(); MockComponent mockComponent; mockComponent.myInt = 3; mockComponent.myString = "hello"; var componentID = entity.AddComponent(mockComponent); var world = worldBuilder.Build(); Assert.AreEqual(new KeyValuePair(componentID, mockComponent), entity.GetComponent()); } [Test] public void HasComponent() { var worldBuilder = new WorldBuilder(); var entity = worldBuilder.CreateEntity(); MockComponent mockComponent; mockComponent.myInt = 3; mockComponent.myString = "hello"; entity.AddComponent(mockComponent); var world = worldBuilder.Build(); Assert.IsTrue(entity.HasComponent()); } } }