Пример #1
0
        public void TestValueRetrieveString()
        {
            // setup handler and add task
            Threadnaught handler    = new Threadnaught();
            string       taskString = "blah blah blah";

            int task1 = handler.AddTask(new Task <string>(() => WasteTimeString(1, taskString)));

            // get the value
            Assert.AreEqual(handler.GetTaskValue <string>(task1), taskString);
        }
Пример #2
0
        public void TestValueRetrieveInt()
        {
            // setup handler and add task
            Threadnaught handler    = new Threadnaught();
            int          taskNumber = 1;

            int task1 = handler.AddTask(new Task <int>(() => WasteTimeInt(taskNumber)));

            // get the value
            Assert.AreEqual(handler.GetTaskValue <int>(task1), taskNumber);
        }
Пример #3
0
        public void TestTaskThrottling()
        {
            // setup a task handler
            Threadnaught handler = new Threadnaught(3);

            // add tasks
            List <int> taskKeys = new List <int>();

            newTasks.ForEach(m => taskKeys.Add(handler.AddTask(m, false)));

            // wait for them then tell the tester to check for those keys
            handler.WaitForTasks(taskKeys, true);
        }
Пример #4
0
        public void TestWait()
        {
            // create the task handler
            Threadnaught handler = new Threadnaught(false); // false to check the auto start on the wait

            // setup a list to get the task keys
            List <int> taskKeys = new List <int>();

            // add the tasks to the handler
            newTasks.ForEach(m => taskKeys.Add(handler.AddTask(m)));

            // pick a task to run
            int taskToRun = PickRandomTaskKey(taskKeys);

            handler.WaitForTask(taskToRun);

            Assert.AreEqual(handler.GetTask(taskToRun).Status, TaskStatus.RanToCompletion);
            taskKeys.Where(m => m != taskToRun).ToList().ForEach(m => Assert.AreEqual(handler.GetTask(m).Status, TaskStatus.Created));
        }
Пример #5
0
        public void TestWaitMultiple()
        {
            // create the task handler
            Threadnaught handler = new Threadnaught(false); // false to check the auto start on the wait

            // setup a list to get the task keys
            List <int> taskKeys = new List <int>();

            // add the tasks to the handler
            newTasks.ForEach(m => taskKeys.Add(handler.AddTask(m)));

            // get the keys we want to run
            List <int> tasksToRun = PickRandomTaskKeys(taskKeys, 4);

            // wait for the tasks
            handler.WaitForTasks(tasksToRun);

            // make sure the tasks are run to completion
            tasksToRun.ForEach(m => Assert.AreEqual(handler.GetTask(m).Status, TaskStatus.RanToCompletion));
        }
Пример #6
0
        public void TestTaskRemoval()
        {
            // setup a task handler
            Threadnaught handler = new Threadnaught(true);

            // add tasks
            List <int> taskKeys = new List <int>();

            newTasks.ForEach(m => taskKeys.Add(handler.AddTask(m)));

            // pick some tasks to run
            List <int> tasksToRun = PickRandomTaskKeys(taskKeys, 6);

            // wait for them then tell the tester to check for those keys
            handler.WaitForTasks(tasksToRun, true);

            // if any of the keys exist, it should fail
            if (handler.TaskQueue.Keys.Where(m => tasksToRun.Any(x => x == m)).Count() > 0)
            {
                Assert.Fail();
            }
        }
Пример #7
0
        public void TextAutoExecute()
        {
            Threadnaught handler = new Threadnaught(false);

            int task1 = handler.AddTask(new Task(() => ExecuteWasteTime(1)));
            int task2 = handler.AddTask(new Task(() => ExecuteWasteTime(2)));
            int task3 = handler.AddTask(new Task(() => ExecuteWasteTime(3)));

            handler.StartTask(task1);
            handler.StartTask(task3);

            handler.WaitForTask(task1);
            handler.WaitForTask(task3);

            // if task two rant o completion or ran, it failed
            Task taskTwo = handler.GetTask(task2);

            if (taskTwo.Status == TaskStatus.RanToCompletion ||
                taskTwo.Status == TaskStatus.Running)
            {
                Assert.Fail();
            }
        }
Пример #8
0
        public void TestAdd()
        {
            Threadnaught handler = new Threadnaught();

            int task1 = handler.AddTask(new Task(() => AddWasteTime(1)));
            int task2 = handler.AddTask(new Task(() => AddWasteTime(2)));
            int task3 = handler.AddTask(new Task(() => AddWasteTime(3)));

            handler.WaitForTask(task1);
            handler.WaitForTask(task2);
            handler.WaitForTask(task3);

            // if any of the stats havent ran to completion, this test failed
            if (new List <TaskStatus>()
            {
                handler.GetTask(task1).Status,
                handler.GetTask(task2).Status,
                handler.GetTask(task3).Status
            }.Any(m => m != TaskStatus.RanToCompletion))
            {
                Assert.Fail();
            }
        }