Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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);
        }