Exemple #1
0
        public void Run_invokes_actions_of_dependencies_before_dependent()
        {
            var queue      = new ConcurrentQueue <int>();
            var dependency = new TaskGraph(() => queue.Enqueue(1));
            var graph      = new TaskGraph(() => queue.Enqueue(2), dependency);

            graph.Run();
            Assert.AreEqual(new[] { 1, 2 }, queue);
        }
Exemple #2
0
        public void Run_invokes_each_task_only_once()
        {
            var actionA = new Mock <Action>();
            var taskA   = new TaskGraph(actionA.Object, ImmutableArray <TaskGraph> .Empty);
            var taskB   = new TaskGraph(() => { }, ImmutableArray.Create(taskA, taskA));
            var taskC   = new TaskGraph(() => { }, ImmutableArray.Create(taskB, taskB));

            taskC.Run();
            actionA.Verify(a => a(), Times.Once);
        }