Represents a Build file that can be run
Ejemplo n.º 1
0
        ///<summary>
        /// Invokes the next task in the queue
        ///</summary>
        public void InvokeNextTask()
        {
            while (Tasks.Count > 0)
            {
                NamedTask task = Tasks.Dequeue();
                //do not run another task if a previous task has errored
                Defaults.Logger.WriteHeader(task.Name);
                try
                {
                    task.Task.Invoke();
                }
                catch (Exception ex)
                {
                    Defaults.Logger.WriteError("ERROR", ex.ToString());
                    BuildFile.SetErrorState();
                }

                if (IsInErrorState)
                {
                    return; //stop executing tasks if non-zero error code
                }
            }

            if (IsInErrorState == false)
            {
                Defaults.Logger.WriteHeader("DONE");
            }
        }
Ejemplo n.º 2
0
 public void TaskThatThrowsExceptionShouldSignalErrorState()
 {
     Assert.That(!BuildFile.IsInErrorState);
     var subject = new BuildFile();
     subject.AddTask("Test", delegate { throw new ApplicationException("testing execption handling");});
     subject.InvokeNextTask();
     Assert.That(BuildFile.IsInErrorState);
 }
Ejemplo n.º 3
0
        public void ShouldHaveProperCount()
        {
            var subject = new BuildFile();
            bool methodCalled = false;

            subject.AddTask(delegate { methodCalled = true; });
            Assert.That(subject.TaskCount, Is.EqualTo(1));
        }
Ejemplo n.º 4
0
 public void ClearTasksShouldRemoveAllTasks()
 {
     var subject = new BuildFile();
     subject.AddTask(delegate { });
     Assert.That(subject.TaskCount, Is.EqualTo(1));
     subject.ClearTasks();
     Assert.That(subject.TaskCount, Is.EqualTo(0));
 }
Ejemplo n.º 5
0
        public void ShouldHaveProperCount()
        {
            var  subject      = new BuildFile();
            bool methodCalled = false;

            subject.AddTask(delegate { methodCalled = true; });
            Assert.That(subject.TaskCount, Is.EqualTo(1));
        }
Ejemplo n.º 6
0
        public void AddNamedTask()
        {
            var subject = new BuildFile();
            bool methodCalled = false;

            subject.AddTask("Test", delegate { methodCalled = true; });
            var task = subject.Tasks.Dequeue();
            Assert.That(task.Name, Is.EqualTo("Test"));
        }
Ejemplo n.º 7
0
        public void TaskThatThrowsExceptionShouldSignalErrorState()
        {
            Assert.That(!BuildFile.IsInErrorState);
            var subject = new BuildFile();

            subject.AddTask("Test", delegate { throw new ApplicationException("testing execption handling"); });
            subject.InvokeNextTask();
            Assert.That(BuildFile.IsInErrorState);
        }
Ejemplo n.º 8
0
        public void ClearTasksShouldRemoveAllTasks()
        {
            var subject = new BuildFile();

            subject.AddTask(delegate { });
            Assert.That(subject.TaskCount, Is.EqualTo(1));
            subject.ClearTasks();
            Assert.That(subject.TaskCount, Is.EqualTo(0));
        }
Ejemplo n.º 9
0
 public void TaskThatThrowsExceptionShouldPreventOtherTasksFromRunning()
 {
     Assert.That(!BuildFile.IsInErrorState);
     var DidSecondTaskRun = false;
     var subject = new BuildFile();
     subject.AddTask("Test", delegate { throw new ApplicationException("testing execption handling"); });
     subject.AddTask("Test", delegate { DidSecondTaskRun = true; });
     subject.InvokeNextTask();
     Assert.That(!DidSecondTaskRun);
 }
Ejemplo n.º 10
0
        public void AddNamedTask()
        {
            var  subject      = new BuildFile();
            bool methodCalled = false;

            subject.AddTask("Test", delegate { methodCalled = true; });
            var task = subject.Tasks.Dequeue();

            Assert.That(task.Name, Is.EqualTo("Test"));
        }
Ejemplo n.º 11
0
        public void TestThatQueueGetsProcessed()
        {
            var subject = new BuildFile();
            bool methodCalled = false;

            subject.AddTask(delegate { methodCalled = true; });
            Assert.That(subject.Tasks.Count, Is.EqualTo(1));
            subject.InvokeNextTask();
            Assert.IsTrue(methodCalled);
            Assert.That(subject.Tasks.Count, Is.EqualTo(0));
        }
Ejemplo n.º 12
0
        public void TaskThatThrowsExceptionShouldPreventOtherTasksFromRunning()
        {
            Assert.That(!BuildFile.IsInErrorState);
            var DidSecondTaskRun = false;
            var subject          = new BuildFile();

            subject.AddTask("Test", delegate { throw new ApplicationException("testing execption handling"); });
            subject.AddTask("Test", delegate { DidSecondTaskRun = true; });
            subject.InvokeNextTask();
            Assert.That(!DidSecondTaskRun);
        }
Ejemplo n.º 13
0
        public void TestThatQueueGetsProcessed()
        {
            var  subject      = new BuildFile();
            bool methodCalled = false;

            subject.AddTask(delegate { methodCalled = true; });
            Assert.That(subject.Tasks.Count, Is.EqualTo(1));
            subject.InvokeNextTask();
            Assert.IsTrue(methodCalled);
            Assert.That(subject.Tasks.Count, Is.EqualTo(0));
        }