public void DoAction_MultipleEntitiesMatched_CalledForAllEntities() { var target = new EntitySystems(); target.NotifyEntityAdded(new Entity()); target.NotifyEntityAdded(new Entity()); target.NotifyEntityAdded(new Entity()); target.DoAction(TimeSpan.Zero); Assert.AreEqual(1, target.DoActionCount); Assert.AreEqual(3, target.DoActionPerEntityCount); }
public void BeforeFirstCommit_NoEntitiesHandled() { var entity = new Entity(); var component = new Component(); var system = new EntitySystems(); var entities = new EntityList(); var entitySystems = new EntitySystemList(entities); entities.Add(entity); entitySystems.Add(system); entity.AddComponent(component); entitySystems.NotifyDoAction(TimeSpan.Zero); Assert.AreEqual(0, system.Counter); }
public void NotifyDoAction_SubsystemDisableEntity_OtherSubsystemsShouldReceiveNotification() { var entity = new Entity(); var component = new Component(); var system = new EntitySystems(); var disabler = new DisablerSystem(); var entities = new EntityList(); var entitySystems = new EntitySystemList(entities); entities.Add(entity); entitySystems.Add(disabler); entitySystems.Add(system); entity.AddComponent(component); entities.CommitChanges(); entitySystems.NotifyDoAction(TimeSpan.Zero); Assert.AreEqual(11, system.Counter); }
public void DisableComponent_EntityRemovedFromSystem() { var entity = new Entity(); var component = new Component(); var system = new EntitySystems(); var entities = new EntityList(); var entitySystems = new EntitySystemList(entities); entities.Add(entity); entitySystems.Add(system); entity.AddComponent(component); entities.CommitChanges(); component.Enabled = false; entities.CommitChanges(); entitySystems.NotifyDoAction(TimeSpan.Zero); Assert.AreEqual(110, system.Counter); }
public void EnableEntity_EntityAddedToSystem() { var entity = new Entity(); var component = new Component(); var system = new EntitySystems(); var entities = new EntityList(); var entitySystems = new EntitySystemList(entities); entities.Add(entity); entitySystems.Add(system); entity.AddComponent(component); entity.Enabled = false; entities.CommitChanges(); entity.Enabled = true; entities.CommitChanges(); entitySystems.NotifyDoAction(TimeSpan.Zero); Assert.AreEqual(11, system.Counter); }
public void ComponentEnabled_WhenEntityDisabled_NoNotification() { var entity = new Entity(); var component = new Component(); var system = new EntitySystems(); var entities = new EntityList(); var entitySystems = new EntitySystemList(entities); entities.Add(entity); entitySystems.Add(system); entity.AddComponent(component); entity.Enabled = false; component.Enabled = false; entities.CommitChanges(); component.Enabled = true; entities.CommitChanges(); entitySystems.NotifyDoAction(TimeSpan.Zero); Assert.AreEqual(0, system.Counter); }