[ Index ]

PHP Cross Reference of phpBB-3.3.14-deutsch

title

Body

[close]

/vendor/symfony/process/Tests/ -> ProcessFailedExceptionTest.php (source)

   1  <?php
   2  
   3  /*
   4   * This file is part of the Symfony package.
   5   *
   6   * (c) Fabien Potencier <fabien@symfony.com>
   7   *
   8   * For the full copyright and license information, please view the LICENSE
   9   * file that was distributed with this source code.
  10   */
  11  
  12  namespace Symfony\Component\Process\Tests;
  13  
  14  use PHPUnit\Framework\TestCase;
  15  use Symfony\Component\Process\Exception\ProcessFailedException;
  16  
  17  /**
  18   * @author Sebastian Marek <proofek@gmail.com>
  19   */
  20  class ProcessFailedExceptionTest extends TestCase
  21  {
  22      /**
  23       * tests ProcessFailedException throws exception if the process was successful.
  24       */
  25      public function testProcessFailedExceptionThrowsException()
  26      {
  27          $process = $this->getMockBuilder('Symfony\Component\Process\Process')->setMethods(['isSuccessful'])->setConstructorArgs(['php'])->getMock();
  28          $process->expects($this->once())
  29              ->method('isSuccessful')
  30              ->willReturn(true);
  31  
  32          $this->expectException(\InvalidArgumentException::class);
  33          $this->expectExceptionMessage('Expected a failed process, but the given process was successful.');
  34  
  35          new ProcessFailedException($process);
  36      }
  37  
  38      /**
  39       * tests ProcessFailedException uses information from process output
  40       * to generate exception message.
  41       */
  42      public function testProcessFailedExceptionPopulatesInformationFromProcessOutput()
  43      {
  44          $cmd = 'php';
  45          $exitCode = 1;
  46          $exitText = 'General error';
  47          $output = 'Command output';
  48          $errorOutput = 'FATAL: Unexpected error';
  49          $workingDirectory = getcwd();
  50  
  51          $process = $this->getMockBuilder('Symfony\Component\Process\Process')->setMethods(['isSuccessful', 'getOutput', 'getErrorOutput', 'getExitCode', 'getExitCodeText', 'isOutputDisabled', 'getWorkingDirectory'])->setConstructorArgs([$cmd])->getMock();
  52          $process->expects($this->once())
  53              ->method('isSuccessful')
  54              ->willReturn(false);
  55  
  56          $process->expects($this->once())
  57              ->method('getOutput')
  58              ->willReturn($output);
  59  
  60          $process->expects($this->once())
  61              ->method('getErrorOutput')
  62              ->willReturn($errorOutput);
  63  
  64          $process->expects($this->once())
  65              ->method('getExitCode')
  66              ->willReturn($exitCode);
  67  
  68          $process->expects($this->once())
  69              ->method('getExitCodeText')
  70              ->willReturn($exitText);
  71  
  72          $process->expects($this->once())
  73              ->method('isOutputDisabled')
  74              ->willReturn(false);
  75  
  76          $process->expects($this->once())
  77              ->method('getWorkingDirectory')
  78              ->willReturn($workingDirectory);
  79  
  80          $exception = new ProcessFailedException($process);
  81  
  82          $this->assertEquals(
  83              "The command \"$cmd\" failed.\n\nExit Code: $exitCode($exitText)\n\nWorking directory: {$workingDirectory}\n\nOutput:\n================\n{$output}\n\nError Output:\n================\n{$errorOutput}",
  84              $exception->getMessage()
  85          );
  86      }
  87  
  88      /**
  89       * Tests that ProcessFailedException does not extract information from
  90       * process output if it was previously disabled.
  91       */
  92      public function testDisabledOutputInFailedExceptionDoesNotPopulateOutput()
  93      {
  94          $cmd = 'php';
  95          $exitCode = 1;
  96          $exitText = 'General error';
  97          $workingDirectory = getcwd();
  98  
  99          $process = $this->getMockBuilder('Symfony\Component\Process\Process')->setMethods(['isSuccessful', 'isOutputDisabled', 'getExitCode', 'getExitCodeText', 'getOutput', 'getErrorOutput', 'getWorkingDirectory'])->setConstructorArgs([$cmd])->getMock();
 100          $process->expects($this->once())
 101              ->method('isSuccessful')
 102              ->willReturn(false);
 103  
 104          $process->expects($this->never())
 105              ->method('getOutput');
 106  
 107          $process->expects($this->never())
 108              ->method('getErrorOutput');
 109  
 110          $process->expects($this->once())
 111              ->method('getExitCode')
 112              ->willReturn($exitCode);
 113  
 114          $process->expects($this->once())
 115              ->method('getExitCodeText')
 116              ->willReturn($exitText);
 117  
 118          $process->expects($this->once())
 119              ->method('isOutputDisabled')
 120              ->willReturn(true);
 121  
 122          $process->expects($this->once())
 123              ->method('getWorkingDirectory')
 124              ->willReturn($workingDirectory);
 125  
 126          $exception = new ProcessFailedException($process);
 127  
 128          $this->assertEquals(
 129              "The command \"$cmd\" failed.\n\nExit Code: $exitCode($exitText)\n\nWorking directory: {$workingDirectory}",
 130              $exception->getMessage()
 131          );
 132      }
 133  }


Generated: Mon Nov 25 19:05:08 2024 Cross-referenced by PHPXref 0.7.1