public void SetUp()
        {
            runRunbookCommand = new RunRunbookCommand(RepositoryFactory,
                                                      FileSystem,
                                                      ClientFactory,
                                                      CommandOutputProvider,
                                                      ExecutionResourceWaiterFactory);

            var links = new LinkCollection {
                { "CreateRunbookRun", "test" }
            };
            var project = new ProjectResource();
            var runbook = new RunbookResource {
                Links = links
            };
            var runbookRun = new RunbookRunResource {
                TaskId = "Task-1"
            };

            taskResource = new TaskResource {
                Id = "Task-1"
            };

            Repository.Projects.FindByName(ProjectName).Returns(project);
            Repository.Runbooks.FindByName(project, RunbookName).Returns(runbook);

            Repository.Runbooks.Run(runbook, Arg.Any <RunbookRunParameters>()).Returns(Task.FromResult(new[] { runbookRun }));
            Repository.Tasks.Get(runbookRun.TaskId).Returns(taskResource);

            Repository.Tasks
            .When(x => x.WaitForCompletion(Arg.Any <TaskResource[]>(), Arg.Any <int>(), TimeSpan.FromSeconds(1), Arg.Any <Func <TaskResource[], Task> >()))
            .Do(x => throw new TimeoutException());
        }
Example #2
0
        public RunbookRunResource Run(RunbookResource runbook, RunbookRunResource runbookRun)
        {
            var serverSupportsRunbookRunParameters = ServerSupportsRunbookRunParameters(Repository.LoadRootDocument().Version);

            return(serverSupportsRunbookRunParameters
                ? Run(runbook, RunbookRunParameters.MapFrom(runbookRun)).FirstOrDefault()
                : Client.Post <object, RunbookRunResource>(runbook.Link("CreateRunbookRun"), runbookRun));
        }