Пример #1
0
        public void PromiseTaskChainSuccess()
        {
            JTaskManager.ClearAllTask();
            int frameCount = 0;

            JPromiseTask promiseTask1 = new JPromiseTask((task, dt) =>
            {
                Console.WriteLine("Task 1 done at " + frameCount);
                task.Resolve(1);
            });

            JPromiseTask.PromiseTaskUpdateDelegate tmp = (task, dt) =>
            {
                Console.WriteLine("Task 2 done at " + frameCount);

                //Previous args
                Assert.AreEqual(1, task.Args);

                task.Resolve(2);
            };

            promiseTask1.Then(tmp);

            JTaskManager.AddTask(promiseTask1);

            Console.WriteLine("start");
            while (!JTaskManager.IsAllDone())
            {
                frameCount++;
                Console.WriteLine("..");
                JTaskManager.Update(0.1f);
            }

            Assert.AreEqual(2, frameCount);
        }
Пример #2
0
        public void PromiseTaskBasic()
        {
            JTaskManager.ClearAllTask();
            int frameCount      = 0;
            int frameToDoneTask = 5;

            JPromiseTask promiseTask1 = new JPromiseTask((task, dt) =>
            {
                if (frameCount >= frameToDoneTask)
                {
                    Console.WriteLine("Task 1 done at " + frameCount);
                    task.Resolve(1);
                }
            });

            JTaskManager.AddTask(promiseTask1);

            Console.WriteLine("start");
            while (!JTaskManager.IsAllDone())
            {
                frameCount++;
                Console.WriteLine("..");
                JTaskManager.Update(0.1f);
            }

            //Console.WriteLine(frameCount);
            //Console.WriteLine("Promise result: " + promiseTask1.SuccessData);

            Assert.AreEqual(5, frameCount);
            Assert.AreEqual(promiseTask1.SuccessData, 1);
        }
Пример #3
0
        public void RepeatTaskLongRun()
        {
            JTaskManager.ClearAllTask();
            int runningCount = 0;
            int frameCount   = 0;

            JBaseTask simpleTask = new JSimpleTask(() =>
            {
                runningCount++;
                Console.WriteLine("Interval Doing: " + runningCount + " Frame:" + frameCount);
            }, 1);

            JBaseTask repeatTask = new JRepeatTask(simpleTask, 1);

            JTaskManager.AddTask(repeatTask);

            Console.WriteLine("start");
            while (!JTaskManager.IsAllDone())
            {
                frameCount++;
                Console.WriteLine("..");
                JTaskManager.Update(0.1f);
                if (runningCount >= 2)
                {
                    break;
                }
            }

            //Console.WriteLine(repeatTask.Status);
            //Console.WriteLine(frameCount);

            Assert.AreEqual(runningCount, 2);
            Assert.AreEqual(frameCount, 40);
        }
Пример #4
0
        public void SimpleTaskWithDelayCancel()
        {
            JTaskManager.ClearAllTask();
            JBaseTask scheduleTask = new JSimpleTask(() =>
            {
                Console.WriteLine("After 1sec");
            }, 1);

            JTaskManager.AddTask(scheduleTask);

            int count = 0;

            Console.WriteLine("start");
            while (!JTaskManager.IsAllDone())
            {
                count++;
                Console.WriteLine("..");
                JTaskManager.Update(0.1f);
                if (count == 5)
                {
                    JTaskManager.RemoveTask(scheduleTask._ticket);
                }
            }

            Assert.AreEqual(scheduleTask.Status, ETaskStatus.Processing);
            Assert.AreEqual(count, 5);
        }
Пример #5
0
        public void PromiseTaskChainError()
        {
            JTaskManager.ClearAllTask();
            int frameCount = 0;

            JPromiseTask promiseTask1 = new JPromiseTask((task, dt) =>
            {
                String k = null;
                k.Replace('1', '2');

                Console.WriteLine("Task 1 done at " + frameCount);
                task.Resolve(1);
            });

            JPromiseTask.PromiseTaskUpdateDelegate errorHandler = (task, dt) =>
            {
                Console.WriteLine("Exception at " + frameCount + " -> " + task.Args);
                Assert.NotNull(task.Args);

                task.Resolve(null);
            };

            JPromiseTask.PromiseTaskUpdateDelegate tmp = (task, dt) =>
            {
                Console.WriteLine("Task 2 done at " + frameCount);
                task.Resolve(2);
            };

            promiseTask1.Then(tmp);
            promiseTask1.Catch(errorHandler);

            JTaskManager.AddTask(promiseTask1);

            Console.WriteLine("start");
            while (!JTaskManager.IsAllDone())
            {
                frameCount++;
                Console.WriteLine("..");
                JTaskManager.Update(0.1f);
            }

            Assert.AreEqual(frameCount, 2);
        }
Пример #6
0
        public void SimpleTaskWithDelay()
        {
            JTaskManager.ClearAllTask();
            JBaseTask scheduleTask = new JSimpleTask(() =>
            {
                Console.WriteLine("After 1sec");
            }, 1);

            JTaskManager.AddTask(scheduleTask);

            int count = 0;

            Console.WriteLine("start");
            while (!JTaskManager.IsAllDone())
            {
                count++;
                Console.WriteLine("..");
                JTaskManager.Update(0.1f);
            }

            Assert.AreEqual(scheduleTask.Status, ETaskStatus.Done);
            Assert.AreEqual(count, 10);
        }