Exemple #1
0
 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;
 }