public void ExecutingTaskWithManyDependenciesExecutesInCorrectOrder() { var bag = new ConcurrentQueue <string>(); var resolver = Initialize(bag); var tasker = new StartupTasker(); tasker.AddAssemblyStartupTasks(new List <Assembly> { this.GetType().Assembly }); tasker.RunTasks(resolver); var result = ""; var hasItem = bag.TryDequeue(out result); Assert.True(hasItem); Assert.Equal("DummyStartupTask", result); hasItem = bag.TryDequeue(out result); Assert.True(hasItem); Assert.Equal("DummyStartupTaskWithDependency", result); hasItem = bag.TryDequeue(out result); Assert.True(hasItem); Assert.Equal("DummyStartupTaskWithAnotherDependency", result); }
public void ExecutingTaskWithMissingDependenciesThrowsException() { var bag = new ConcurrentQueue <string>(); var resolver = Initialize(bag); var tasker = new StartupTasker(); tasker.AddStartupTask <DummyStartupTaskWithDependency>(); Assert.Throws <MissingDependencyException>(() => tasker.RunTasks(resolver)); }
public void ExecutingTaskWithNoDependenciesExecutes() { var bag = new ConcurrentQueue <string>(); var resolver = Initialize(bag); var tasker = new StartupTasker(); tasker.AddStartupTask <DummyStartupTask>(); tasker.RunTasks(resolver); var result = ""; var hasItem = bag.TryDequeue(out result); Assert.True(hasItem); Assert.Equal("DummyStartupTask", result); }