function it_should_contain_the_error_messages(TasksCollection $tasks, ContextInterface $context, TaskResult $passedTaskResult, TaskResult $failedTaskResult) { $taskResults = new TaskResultCollection(); $taskResults->add($passedTaskResult->getWrappedObject()); $failedTaskResult->getMessage()->willReturn('message 1'); $taskResults->add($failedTaskResult->getWrappedObject()); $this->beConstructedWith($tasks, $context, $taskResults); $this->getMessages()->shouldReturn(array('message 1')); }
/** * @param ContextInterface $context * * @return TaskResultCollection */ public function run(ContextInterface $context) { $tasks = $this->tasks->filterByContext($context)->sortByPriority($this->grumPHP); $taskResults = new TaskResultCollection(); $this->eventDispatcher->dispatch(RunnerEvents::RUNNER_RUN, new RunnerEvent($tasks, $context, $taskResults)); foreach ($tasks as $task) { try { $taskResult = $this->runTask($task, $context); } catch (RuntimeException $e) { $taskResult = TaskResult::createFailed($task, $context, $e->getMessage()); } $taskResults->add($taskResult); if (!$taskResult->isPassed() && $taskResult->isBlocking() && $this->grumPHP->stopOnFailure()) { break; } } if ($taskResults->isFailed()) { $this->eventDispatcher->dispatch(RunnerEvents::RUNNER_FAILED, new RunnerFailedEvent($tasks, $context, $taskResults)); return $taskResults; } $this->eventDispatcher->dispatch(RunnerEvents::RUNNER_COMPLETE, new RunnerEvent($tasks, $context, $taskResults)); return $taskResults; }
function it_should_display_warning_of_non_blocking_failed_tasks(OutputInterface $output, TaskRunner $taskRunner, TaskInterface $task, ContextInterface $context) { $aTask = $task->getWrappedObject(); $aContext = $context->getWrappedObject(); $nonBlockingFailedTaskResult = TaskResult::createNonBlockingFailed($aTask, $aContext, 'non blocking task message'); $taskResults = new TaskResultCollection(); $taskResults->add($nonBlockingFailedTaskResult); $taskRunner->run($context)->willReturn($taskResults); $output->isDecorated()->willReturn(false); $output->getVerbosity()->willReturn(OutputInterface::VERBOSITY_NORMAL); $output->writeln(Argument::containingString('non blocking task message'))->shouldBeCalled(); $output->writeln(Argument::any())->shouldBeCalled(); $this->run($output, $context); }