public ExecutionResult Execute(IEnumerable <TaskExecutionNode> storyNodes)
        {
            var stories = new List <Story>();

            var scenarioTasks = new List <RemoteTask>();
            var storyTasks    = new List <RemoteTask>();

            foreach (var storyNode in storyNodes)
            {
                var rst = storyNode.RemoteTask as RunStoryTask;
                storyTasks.Add(rst);
                _server.TaskStarting(storyNode.RemoteTask);

                var scenarios = new List <IScenario>();
                foreach (var task in storyNode.Children)
                {
                    if (task.RemoteTask is RunScenarioTask)
                    {
                        scenarios.Add(GetScenarioFromNode(task));
                    }
                    else
                    {
                        foreach (var node in (task.Children))
                        {
                            scenarios.Add(GetScenarioFromNode(node));
                            scenarioTasks.Add(node.RemoteTask);
                        }
                    }
                    scenarioTasks.Add(task.RemoteTask);
                }

                stories.Add(new Story(rst.Id, rst.Id, scenarios));
            }

            _listener.SetScenarioTasks(storyTasks, scenarioTasks);
            _runner.HandleStories(stories);

            return(new ExecutionResult(TaskResult.Success, ""));
        }
Example #2
0
 public JobResult HandleStories(IEnumerable <Story> stories)
 {
     return(_storyHandler.HandleStories(stories));
 }