public void NormalWorkTestPasses() { var workManager = new WorkManager(); Vector3 result = Vector3.zero; Work work = SimpleWork.Create(() => { result = Vector3.one; }); workManager.StartWork(work); workManager.Update(1, 1); Assert.That(result, Is.EqualTo(Vector3.one)); Vector3 result2 = Vector3.zero; work = WaitSecondsWork.Create(5); work.ContinueWith(_ => { result2 = Vector3.one; }); workManager.StartWork(work); workManager.Update(1, 1); workManager.Update(1, 1); Assert.That((work as WaitSecondsWork).LeftSeconds, Is.EqualTo(3)); Assert.That(work.WorkStatus == WorkStatus.Running); workManager.Update(1, 1); workManager.Update(1, 1); workManager.Update(1, 1); Assert.That(result2, Is.EqualTo(Vector3.one)); result = Vector3.zero; work = TimerWork.Create(0.5f, () => { result.x += 1; Debug.Log("Excute"); }); workManager.StartWork(work); workManager.Update(0.5f, 0.5f); Assert.That(result.x, Is.EqualTo(1f)); workManager.Update(1f, 1f); Assert.That(result.x, Is.EqualTo(3f)); }
private void InitializeSpools() { try { FileLogger.Info(Logger, "Spool configurati: " + Cfg.Spools.Count); foreach (var spool in Cfg.Spools) { var mySpool = new Spool(spool.Id); FileLogger.Info(Logger, "Configurazione Spool: " + mySpool.Id); // Inizializzo i timers dello spool FileLogger.Info(Logger, "Timers configurati: " + spool.Timers.Count); foreach (var timer in spool.Timers) { FileLogger.Debug(Logger, String.Format("Configurazione timer: {0} - {1}", timer.Id, timer.Type)); //Timer di riferimento var tw = new TimerWork(timer.Type) { Id = timer.Id, Duetime = timer.DueTime, Period = timer.Period, BeginTime = timer.BeginTime, EndTime = timer.EndTime }; var configuredModules = Cfg.Modules.Where(module => module.Spool == spool.Id && module.Timer == timer.Id && module.Enabled).ToList(); if (configuredModules.Count <= 0) { continue; } var timerModules = configuredModules.Select(configuredModule => Modules[configuredModule.Id]).ToList(); // Inizializzo tutti i moduli del timer foreach (var jeepThreadedModule in timerModules) { jeepThreadedModule.Timer = tw; JeepModules[jeepThreadedModule].Start(); } } FileLogger.Debug(Logger, "Spool configurato correttamente: " + mySpool.Id); Spools.Add(mySpool.Id, mySpool); } foreach (var s in Spools.Values) { FileLogger.Debug(Logger, "Spool configurato: " + s.Id); foreach (var timer in s.Timers.Values) { FileLogger.Debug(Logger, "TimerWork configurato: " + timer); } } if (Spools.Count != 0) { return; } // Nessun modulo caricato FileLogger.Error(Logger, "Nessun modulo caricato"); // Fermo il servizio Stop(); } catch (Exception exc) { FileLogger.Error(Logger, "Errore in configurazione Spools", exc); Stop(); } }