public void TryEnterReturnsTrueWhenUnlocked() { var gate = new AccessGate { IsLocked = false }; gate.TryEnter().ShouldBeTrue(); }
public void TryEnterReturnsFalseWhenLocked() { var gate = new AccessGate { IsLocked = true }; gate.TryEnter().ShouldBeFalse(); }
public void GateDoesNotThrowWhenUnlocked() { var gate = new AccessGate { IsLocked = false }; Should.NotThrow(() => gate.Enter()); }
public void GateThrowsWhenLocked() { var gate = new AccessGate { IsLocked = true }; Should.Throw <InvalidOperationException>(() => gate.Enter()); }
public RuntimeEngine(RuntimeEntityService entityService, ISystemManager systemManager, EventQueue eventQueue, ILogger logger) { AddEntityAccessGate = new AccessGate(); EventQueue = eventQueue; _logger = logger; EntityService = entityService; EntityService.AddEntityAccessGate = AddEntityAccessGate; SystemManager = systemManager; SystemUpdateScheduler = new SystemUpdateScheduler(SystemManager.Systems); foreach (var updateBurst in SystemUpdateScheduler.UpdateBursts) { _logger.Info($"Update Burst: {string.Join(", ", updateBurst.Systems.Select(p => p.System.Name))}"); } // Add any entities that are already loaded into the engine. SystemManager.AddEntities(entityService.Entities); }