Exemple #1
0
        public void MultipleJobsWithOneDependency()
        {
            OrderedJobs.Sort(
                @"a =>
b => c
c =>")
            .ShouldBe("acb");
        }
Exemple #2
0
        public void PreventSelfReferencingDependency()
        {
            Should.Throw <Job.CircularDependency>(() =>
                                                  OrderedJobs.Sort(
                                                      @"a =>
b =>
c => c"));
        }
Exemple #3
0
        public void MultipleJobsWithTwoDependencies()
        {
            OrderedJobs.Sort(
                @"a => b
b => c
c =>")
            .ShouldBe("cba");
        }
Exemple #4
0
        public void MultipleJobsWithNoDependencies()
        {
            OrderedJobs.Sort(
                @"a =>
b =>
c =>")
            .ShouldBe("abc");
        }
        private static void Validate(Job job, OrderedJobs dependencyList)
        {
            var givenJob = job;

            while (givenJob.HasDependency)
            {
                givenJob = JobHasNoDependency(givenJob, dependencyList, 0);
            }
        }
Exemple #6
0
        public void PreventCircularDependencies()
        {
            Should.Throw <Job.CircularDependency>(() =>
                                                  OrderedJobs.Sort(
                                                      @"a =>
b => c
c => f
d => a
e =>
f => b"));
        }
Exemple #7
0
        public void MultipleJobsWithMultipleDependencies()
        {
            OrderedJobs.Sort(
                @"a =>
b => c
c => f
d => a
e => b
f =>")
            .ShouldBe("afcbde");
        }
        private static Job JobHasNoDependency(Job job, OrderedJobs dependencyList, int i)
        {
            if (string.IsNullOrEmpty(job.DependencyName))
            {
                return(job);
            }

            var dependentJob = dependencyList[job.DependencyName];

            if (dependentJob == null || string.IsNullOrEmpty(dependentJob.DependencyName))
            {
                return(dependentJob);
            }

            if (i++ >= DependencyDepth)
            {
                throw new CircularReferencingDependencyException();
            }

            return(JobHasNoDependency(dependentJob, dependencyList, i));
        }
Exemple #9
0
 public void SingleJobB()
 {
     OrderedJobs.Sort("b =>")
     .ShouldBe("b");
 }
Exemple #10
0
 public void SingleJobA()
 {
     OrderedJobs.Sort("a =>")
     .ShouldBe("a");
 }
Exemple #11
0
 public void EmptyJobList()
 {
     OrderedJobs.Sort("")
     .ShouldBe("");
 }
 public Instructions()
 {
     _orderedJobs = new OrderedJobs();
 }