コード例 #1
0
        public void TaskNotExecutedHasStateFalse_WithNoDependencies()
        {
            MsTask t = new MsTask();

            Assert.IsTrue(t.Dependencies.Count == 0);
            Assert.IsFalse(t.MsTaskState);
        }
コード例 #2
0
        public void TaskCanHaveNoDependencyWithParameterizedConstructor()
        {
            MsTask tChild = new MsTask();
            MsTask t      = new MsTask(new List <MsTask>());

            Assert.IsTrue(t.Dependencies.Count == 0);
        }
コード例 #3
0
        public void TaskExecutedTwiceThrowsException()
        {
            MsTask t = new MsTask();

            t.Execute();
            Assert.ThrowsException <InvalidOperationException>(() => t.Execute());
        }
コード例 #4
0
        static void Main(string[] args)
        {
            //program for quick tests
            MsTask te = new MsTask();

            te.Info = "E";
            MsTask td = new MsTask();

            td.Info = "D";
            MsTask tc = new MsTask(new List <MsTask> {
                te
            });

            tc.Info = "C";
            MsTask tb = new MsTask(new List <MsTask> {
                td, te
            });

            tb.Info = "B";
            MsTask ta = new MsTask(new List <MsTask> {
                tb, tc
            });

            ta.Info = "A";

            var r = new MsTaskRunEngine(ta);

            r.BuildStack(r.TaskToRun);
            foreach (var t in r.stackTasks)
            {
                Console.WriteLine(t.Info);
            }
            Console.Read();
        }
コード例 #5
0
 public void BuildStack(MsTask t)
 {
     stackTasks.Push(t);
     foreach (var tChild in t.Dependencies)
     {
         BuildStack(tChild);
     }
 }
コード例 #6
0
        public void TaskExecutedHasStateTrue_WithNoDependencies()
        {
            MsTask t = new MsTask();

            t.Execute();
            Assert.IsTrue(t.Dependencies.Count == 0);
            Assert.IsTrue(t.MsTaskState);
        }
コード例 #7
0
        public void TaskNotExecutedHasStateFalse_ParameterizedConstructor()
        {
            MsTask tChild = new MsTask();
            MsTask t      = new MsTask(new List <MsTask> {
                tChild
            });

            Assert.IsFalse(t.MsTaskState);
        }
コード例 #8
0
        public void TaskCanHaveDependencies()
        {
            MsTask tChild = new MsTask();
            MsTask t      = new MsTask(new List <MsTask> {
                tChild
            });

            Assert.IsTrue(t.Dependencies.Count > 0);
        }
コード例 #9
0
        public void EngineRunTaskWithoutDependencies()
        {
            MsTask td = new MsTask();

            td.Info = "D";
            MsTaskRunEngine r = new MsTaskRunEngine(td);

            r.Run();
            Assert.IsTrue(td.MsTaskState);
        }
コード例 #10
0
        public void TaskNotExecutedHasStateFalse_WithDependencies()
        {
            MsTask tChild = new MsTask();
            MsTask t      = new MsTask(new List <MsTask> {
                tChild
            });

            Assert.IsTrue(t.Dependencies.Count > 0);
            Assert.IsFalse(t.MsTaskState);
        }
コード例 #11
0
        private bool TaskNotExecuted(MsTask t)
        {
            var result = true;

            for (int i = 0; i < RunEngineLog.Count; i++)
            {
                if (RunEngineLog[i].Info == t.Info && RunEngineLog[i].MsTaskState)
                {
                    result = false;
                    break;
                }
            }
            return(result);
        }
コード例 #12
0
        public void EngineRunTaskWithSingleDependency()
        {
            MsTask te = new MsTask();

            te.Info = "E";
            MsTask tc = new MsTask(new List <MsTask> {
                te
            });

            tc.Info = "C";
            MsTaskRunEngine r = new MsTaskRunEngine(tc);

            r.Run();
            Assert.IsTrue(tc.MsTaskState);
            Assert.IsTrue(te.MsTaskState);
            Assert.IsTrue(r.RunEngineLog[0].Info == "E");
            Assert.IsTrue(r.RunEngineLog[1].Info == "C");
        }
コード例 #13
0
        public void EngineRunTaskWithMultipleDependenciesMultipleLevelsDeep()
        {
            MsTask te = new MsTask();

            te.Info = "E";
            MsTask td = new MsTask();

            td.Info = "D";
            MsTask tc = new MsTask(new List <MsTask> {
                te
            });

            tc.Info = "C";
            MsTask tb = new MsTask(new List <MsTask> {
                td, te
            });

            tb.Info = "B";
            MsTask ta = new MsTask(new List <MsTask> {
                tb, tc
            });

            ta.Info = "A";
            MsTaskRunEngine r = new MsTaskRunEngine(ta);

            r.Run();
            Assert.IsTrue(ta.MsTaskState);
            Assert.IsTrue(tb.MsTaskState);
            Assert.IsTrue(tc.MsTaskState);
            Assert.IsTrue(td.MsTaskState);
            Assert.IsTrue(te.MsTaskState);
            Assert.IsTrue(r.RunEngineLog[0].Info == "E");
            Assert.IsTrue(r.RunEngineLog[1].Info == "C");
            Assert.IsTrue(r.RunEngineLog[2].Info == "E");
            Assert.IsTrue(r.RunEngineLog[3].Info == "D");
            Assert.IsTrue(r.RunEngineLog[4].Info == "B");
            Assert.IsTrue(r.RunEngineLog[5].Info == "A");
        }
コード例 #14
0
        public void EngineRunTaskWithMultipleDependenciesOneLevelDeep()
        {
            MsTask te = new MsTask();

            te.Info = "E";
            MsTask td = new MsTask();

            td.Info = "D";
            MsTask tb = new MsTask(new List <MsTask> {
                td, te
            });

            tb.Info = "B";
            MsTaskRunEngine r = new MsTaskRunEngine(tb);

            r.Run();
            Assert.IsTrue(tb.MsTaskState);
            Assert.IsTrue(td.MsTaskState);
            Assert.IsTrue(te.MsTaskState);
            Assert.IsTrue(r.RunEngineLog[0].Info == "E");
            Assert.IsTrue(r.RunEngineLog[1].Info == "D");
            Assert.IsTrue(r.RunEngineLog[2].Info == "B");
        }
コード例 #15
0
        public void TaskNotExecutedHasStateFalse_EmptyConstructor()
        {
            MsTask t = new MsTask();

            Assert.IsFalse(t.MsTaskState);
        }
コード例 #16
0
 public MsTaskRunEngine(MsTask taskToRun)
 {
     TaskToRun    = taskToRun;
     RunEngineLog = new Dictionary <int, MsTask>();
     stackTasks   = new Stack <MsTask>();
 }
コード例 #17
0
        public void CreateObjectTypeTask()
        {
            MsTask t = new MsTask();

            Assert.IsInstanceOfType(t, typeof(MsTask));
        }
コード例 #18
0
        public void TaskCanHaveNoDependencyWithEmptyConstrcutor()
        {
            MsTask t = new MsTask();

            Assert.IsTrue(t.Dependencies.Count == 0);
        }