Esempio n. 1
0
        public void GetTopOfChain_ReturnsTopTaskWhenNotStarted()
        {
            var task1 = new TPLTask(TaskEx.FromResult(true));
            var task2 = new TestActionTask(Token, _ => { });
            var task3 = new TestActionTask(Token, _ => { });

            task1.Then(task2).Then(task3);

            var top = task3.GetTopOfChain();

            Assert.AreSame(task1, top);
        }
Esempio n. 2
0
        public void GetTopMostTask()
        {
            var task1 = new ActionTask(TaskEx.FromResult(true));
            var task2 = new TestActionTask(Token, _ => { });
            var task3 = new TestActionTask(Token, _ => { });

            task1.Then(task2).Then(task3);

            var top = task3.Test_GetTopMostTask();

            Assert.AreSame(task1, top);
        }
Esempio n. 3
0
        public void GetFirstStartableTask_ReturnsTopTaskWhenNotStarted()
        {
            var task1 = new ActionTask(Token, () => { });
            var task2 = new TestActionTask(Token, _ => { });
            var task3 = new TestActionTask(Token, _ => { });

            task1.Then(task2).Then(task3);

            var top = task3.Test_GetFirstStartableTask();

            Assert.AreSame(task1, top);
        }
Esempio n. 4
0
        public async Task GetTopMostTaskInCreatedState()
        {
            var task1 = new ActionTask(Token, () => { });
            await task1.StartAwait();

            var task2 = new TestActionTask(Token, _ => { });
            var task3 = new TestActionTask(Token, _ => { });

            task1.Then(task2).Then(task3);

            var top = task3.Test_GetTopMostTaskInCreatedState();

            Assert.AreSame(task2, top);
        }
Esempio n. 5
0
        public async Task GetFirstStartableTask_ReturnsNullWhenItsAlreadyStarted()
        {
            var task1 = new ActionTask(Token, () => { });
            await task1.StartAwait();

            var task2 = new TestActionTask(Token, _ => { });
            var task3 = new TestActionTask(Token, _ => { });

            task1.Then(task2).Then(task3);

            var top = task3.Test_GetFirstStartableTask();

            Assert.AreSame(task2, top);
        }
Esempio n. 6
0
        public void GetTopOfChain_ReturnsTopTaskWhenNotStarted()
        {
            using (var test = StartTest())
            {
                var task1 = new TPLTask(test.TaskManager, () => Task.FromResult(true));
                var task2 = new TestActionTask(test.TaskManager, _ => { });
                var task3 = new TestActionTask(test.TaskManager, _ => { });

                task1.Then(task2).Then(task3);

                var top = task3.GetTopOfChain();
                Assert.AreSame(task1, top);
            }
        }
Esempio n. 7
0
        public void GetFirstStartableTask_ReturnsTopTaskWhenNotStarted()
        {
            using (var test = StartTest())
            {
                var task1 = new ActionTask(test.TaskManager, () => { });
                var task2 = new TestActionTask(test.TaskManager, _ => { });
                var task3 = new TestActionTask(test.TaskManager, _ => { });

                task1.Then(task2).Then(task3);

                var top = task3.Test_GetFirstStartableTask();
                Assert.AreSame(task1, top);
            }
        }
Esempio n. 8
0
        public IEnumerator GetTopOfChain_ReturnsTopMostInCreatedState()
        {
            using (var test = StartTest())
            {
                var task = new ActionTask(test.TaskManager, () => { });

                // wait for the tasks to finish
                foreach (var frame in StartAndWaitForCompletion(task))
                {
                    yield return(frame);
                }

                var task2 = new TestActionTask(test.TaskManager, _ => { });
                var task3 = new TestActionTask(test.TaskManager, _ => { });

                task.Then(task2).Then(task3);

                var top = task3.GetTopOfChain();
                Assert.AreSame(task2, top);
            }
        }
Esempio n. 9
0
        public IEnumerator GetFirstStartableTask_ReturnsNullWhenItsAlreadyStarted()
        {
            using (var test = StartTest())
            {
                var task = new ActionTask(test.TaskManager, () => { });

                // wait for the tasks to finish
                foreach (var frame in StartAndWaitForCompletion(task))
                {
                    yield return(frame);
                }

                var task2 = new TestActionTask(test.TaskManager, _ => { });
                var task3 = new TestActionTask(test.TaskManager, _ => { });

                task.Then(task2).Then(task3);

                var top = task3.Test_GetFirstStartableTask();

                Assert.AreSame(null, top);
            }
        }