/**
  * Tests right errors output.
  *
  * @covers ::displayErrors
  *
  * @return void
  */
 public function testDisplayErrors()
 {
     $validator = new Validator();
     $validator->addError(null, 'Foo');
     $validator->addError('subpath', 'Bar');
     $output = new StreamOutput(fopen('php://memory', 'r+'), StreamOutput::VERBOSITY_NORMAL, false);
     Utils::displayErrors($validator, $output);
     rewind($output->getStream());
     $this->assertStringEqualsFile(__DIR__ . '/fixtures/Utils/testDisplayErrors', stream_get_contents($output->getStream()));
     fclose($output->getStream());
 }
 /**
  * Executes the current command.
  *
  * @param InputInterface  $input  An InputInterface instance.
  * @param OutputInterface $output An OutputInterface instance.
  *
  * @return int
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     Utils::resolveSchemaUri($input);
     $schema = $input->getArgument('schema');
     $schema = (new UriRetriever())->retrieve('file://' . realpath($schema));
     $data = json_decode(file_get_contents($input->getArgument('file')));
     $validator = new Validator();
     $validator->check($data, $schema);
     if ($validator->isValid()) {
         $output->writeln('<info>The supplied JSON validates against the schema.</info>');
         return 0;
     }
     Utils::displayErrors($validator, $output);
     return 1;
 }