protected function execute(InputInterface $input, OutputInterface $output) { $constraintDescriber = new \RestSpec\Output\ConstraintDescriber(); $consoleOutput = new \RestSpec\Output\ConsoleOutput($output, $constraintDescriber); $loader = new \RestSpec\Loader(); $loader->run(); $restSpec = Spec\Rest::getInstance(); $restSpecValidator = new \RestSpec\Spec\Validator(); $restSpecValidator->validate($restSpec); $apiSpec = $restSpec->getApiSpecs(); foreach ($apiSpec as $apiSpec) { $output->writeln(sprintf("\nAPI base URL: <info>%s</info>\n", $apiSpec->getBaseUrl())); foreach ($apiSpec->getUrlSpecs() as $urlSpec) { $output->writeln(sprintf("<comment>%s</comment>\n\n<info>%s</info>\n", $urlSpec->getDescription(), $urlSpec->getUrl())); $useCases = $urlSpec->getUseCases(); $useCaseView = new UseCaseView(); foreach ($useCases as $useCase) { $output->write($useCaseView->view($useCase, $output)); } } } }
public function dumpAsConsoleText() { $output = ''; $useCaseView = new UseCaseView(); $output .= $useCaseView->view($this->spec); if ($this->getStatusCodeViolation()) { $output .= $this->getStatusCodeViolation() . "\n"; } else { $output .= sprintf("\t\tResponse code is <info>%s</info>\n", $this->getResponse()->getStatusCode()); } if ($this->getHeadersViolations()) { foreach ($this->getHeadersViolations() as $violation) { $output .= $violation . "\n"; } } else { $output .= sprintf("\t\tResponse has following required headers:\n"); foreach ($this->responseSpec->getRequiredHeaders() as $headerName => $headerValue) { $output .= sprintf("\t\t\t<info>%s: %s</info>\n", $headerName, $headerValue); } } $output .= "\n"; if (!$this->getBodyViolations()) { $actualBody = (string) $this->getResponse()->getBody(); $json = json_decode($actualBody); if ($json) { $bodyStr = json_encode($json, JSON_PRETTY_PRINT); } else { $bodyStr = $json; } $output .= "\t\tResponse body is valid:\n\n\n"; $output .= sprintf("<info>%s</info>\n\n\n", \RestSpec\Output\indentValue($bodyStr, 2)); } else { foreach ($this->getBodyViolations() as $violation) { $output .= $violation . "\n"; } } return $output; }