Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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"));
        }
Esempio n. 4
0
        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));
        }
Esempio n. 5
0
 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)));
     }
 }
Esempio n. 6
0
 /// <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}");
     }
 }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        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));
        }
Esempio n. 10
0
        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);
        }
Esempio n. 11
0
        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);
        }
Esempio n. 12
0
        //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);
        }