public function testInput()
 {
     $input = new Input();
     $input->setProcessInput('input');
     $input->setPostScriptCode('.setpdfwrite');
     $input->addFile('/path/to/output/file.pdf');
     $input->setFiles(['/path/to/output/file.pdf']);
     $this->assertSame('input', $input->getProcessInput());
     $this->assertSame('.setpdfwrite', $input->getPostScriptCode());
     $this->assertInternalType('array', $input->getFiles());
     $this->assertCount(1, $input->getFiles());
 }
 /**
  * @expectedException \RuntimeException
  */
 public function testProcessCreationThrowsExceptionOnMissingInputFile()
 {
     $input = new Input();
     $input->addFile('/path/to/input/file.pdf');
     $this->createDevice()->createProcess($input);
 }
 /**
  * {@inheritdoc}
  */
 protected function createProcessArguments(Input $input)
 {
     $code = $input->getPostScriptCode();
     if (null === $code) {
         $code = '';
     }
     if (false === strstr($code, '.setpdfwrite')) {
         $input->setPostScriptCode(ltrim($code . ' .setpdfwrite', ' '));
     }
     return parent::createProcessArguments($input);
 }
 /**
  * Create process builder.
  *
  * @param array $arguments
  * @param Input $input
  *
  * @return ProcessBuilder
  */
 protected function createProcessBuilder(array $arguments, Input $input)
 {
     $processBuilder = ProcessBuilder::create($arguments);
     $processBuilder->setPrefix($this->ghostscript->getOption('bin', Ghostscript::DEFAULT_BINARY));
     $processBuilder->setWorkingDirectory($this->ghostscript->getOption('cwd'));
     $processBuilder->addEnvironmentVariables($this->ghostscript->getOption('env', []));
     $processBuilder->setTimeout($this->ghostscript->getOption('timeout', 60));
     $processBuilder->setInput($input->getProcessInput());
     return $processBuilder;
 }