public void Test2() { IWorker worker = new Worker(); int value = 1; worker.Add(new Job <int>(job => { value -= 2; return(value); })); worker.Add(new Job <int>(job => { throw new NotImplementedException(); }).Subscribe( (int x) => { }, (Exception e) => { value += 8; }, () => { })); value += 9; worker.WaitForIdle(); Assert.Equal(16, value); }
public void Test3() { IWorker worker = new Worker(); int value = 1; Job <int> job = null; worker.Add(new Job <int>(j => { Thread.Sleep(100); value -= 2; return(value); })); worker.Add(job = new Job <int>(j => { Thread.Sleep(100); value += 2; return(value); })); worker.Remove(job); worker.WaitForIdle(); Assert.Equal(-1, value); Assert.False(worker.IsDead); Assert.True(worker.IsIdle); Assert.Empty(worker.JobQueue); }
public void GiveActionToRun_ShouldExecuteInSequence() { var console = new Mock <IOutput>(); var runner = new Worker(console.Object); runner.Add(Act1); runner.Add(Act2); runner.Run(); Thread.Sleep(3000); Assert.That(runner.Executed[0], Is.EqualTo("Act1")); Assert.That(runner.Executed[1], Is.EqualTo("Act2")); }
public void GiveCancelRun_ShouldStopExecuting() { var console = new Mock <IOutput>(); var runner = new Worker(console.Object); runner.Add(Act1); runner.Add(Act2); runner.Add(Act3); runner.Run(); runner.Cancel(); Thread.Sleep(3000); Assert.That(runner.Executed, Has.Count.LessThan(3)); }
private void FileChangedFilterHandler(FileSystemEventArgs e) { if (e.Name.EndsWith(".zevtc") || e.Name.EndsWith(".evtc")) { Worker.Add(new NamedJob <CachedLog>($"Adding {e.Name}", () => HandelNewFile(e.FullPath))); } }
/// <summary> /// Register an ant as worker in the task manager /// </summary> /// <param name="ant"></param> public void RegisterWorker(PowerAntClass ant) { if (!Worker.Contains(ant)) { Worker.Add(ant); log.Debug($"Worker registered {ant.Id}"); } }
public int ParseAndUpload(int id, string name = "Parse and Upload") { var job = new NamedJob <CachedLog>(name, () => { var res = ParseAndUploadJob(QuickCacheLog(id)); OnDataChanged(new EventArgs()); return(res); }); Worker.Add(job); return(job.ID); }
static void Main(string[] args) { // Список работников List <Worker> workers = new List <Worker>(); // Фильтр Filter filter = new Filter(); filter.Init(); // Бесконечный цикл работы программы do { // Вывод главного меню Console.Clear(); Console.WriteLine("Выберите действие:"); Console.WriteLine("1 - Добавить нового сотрудника"); Console.WriteLine("2 - Вывести всех сотрудников"); Console.WriteLine("3 - Вывести отфильтрованных сотрудников"); Console.WriteLine("4 - Установить параметры фильтра"); Console.WriteLine("Любое другое значение для выхода"); // Ожидание и обработка ввода пользователя switch (Console.ReadLine()) { // Добавления в список нового работника case "1": Worker.Add(ref workers); break; // Вывод всех работников case "2": Worker.OutAll(ref workers); Console.ReadKey(); break; // Вывод работников удовлетворяющих фильтру case "3": Worker.OutFilterWorkers(workers, filter); Console.ReadKey(); break; // Изменение значениий фильтра case "4": filter.ChangeValue(); break; // Выход из программы default: Environment.Exit(0); break; } } while (true); }
public void GiveActionToRun_CanAddActionAnyTime() { var console = new Mock <ConsoleOutput>(); var runner = new Worker(console.Object); var result = string.Empty; Action <string> act = (string x) => { console.Object.Write(x); }; runner.Add(Act1); runner.Add(Act2); runner.Run(); Thread.Sleep(3000); runner.Add(Act1); runner.Add(Act2); runner.Run(); Thread.Sleep(3000); Assert.That(runner.Executed, Has.Count.EqualTo(4)); }
public int Upload(int id, string name = "Uploading") { var job = new NamedJob <CachedLog>(name, () => { var res = UploadJob(QuickCacheLog(id)); OnDataChanged(new EventArgs()); GC.Collect(); return(res); }); Worker.Add(job); return(job.ID); }
public void Test1() { IWorker worker = new Worker(); int value = 5; worker.Add(new Job <int>(job => { value += 2; return(value); })); value += 2; worker.WaitForIdle(); Assert.Equal(9, value); }
//private void AddQueue(object parameter) => Console.WriteLine("Delay: " + Wait + " | Speed: " + Speed); private void AddQueue(object parameter) { string check = checkValue(); if (!check.Equals("PASSED")) { MessageBox.Show(check); return; } Worker.Add(new Model.Worker { Pump = Pump, Value = Value, Volume = Volume, Speed = Speed, Wait = Wait }); Pump = String.Empty; Value = String.Empty; Volume = String.Empty; Speed = String.Empty; Wait = String.Empty; }
public void TestAddEmployee() { //arrange Employee e = new Chief("Ivan", "Director", 10000, null, null); Employee m1 = new Chief("Ivan", "Manager", 10000, null, null); Employee e1 = new Worker("Serega", "ScalaDno", 2000, null, null); Employee e2 = new Worker("Nagulak", "Novuy", 1000, null, null); List <Employee> listofchief = new List <Employee>() { e1, e2 }; List <Employee> listnull = new List <Employee>(); //act e.Add(e1); e.Add(e2); e1.Add(m1); //assert CollectionAssert.AreEquivalent(e1.GetIterator().ToList(), listnull); CollectionAssert.AreEquivalent(e.GetIterator().ToList(), listofchief); }