public void MultipleJobsWithOneDependency() { OrderedJobs.Sort( @"a => b => c c =>") .ShouldBe("acb"); }
public void PreventSelfReferencingDependency() { Should.Throw <Job.CircularDependency>(() => OrderedJobs.Sort( @"a => b => c => c")); }
public void MultipleJobsWithTwoDependencies() { OrderedJobs.Sort( @"a => b b => c c =>") .ShouldBe("cba"); }
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); } }
public void PreventCircularDependencies() { Should.Throw <Job.CircularDependency>(() => OrderedJobs.Sort( @"a => b => c c => f d => a e => f => b")); }
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)); }
public void SingleJobB() { OrderedJobs.Sort("b =>") .ShouldBe("b"); }
public void SingleJobA() { OrderedJobs.Sort("a =>") .ShouldBe("a"); }
public void EmptyJobList() { OrderedJobs.Sort("") .ShouldBe(""); }
public Instructions() { _orderedJobs = new OrderedJobs(); }