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()); }
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)); }