Spaces:
Sleeping
Sleeping
processmaker-community / processmaker-files /vendor /symfony /process /Tests /ProcessFailedExceptionTest.php
| /* | |
| * This file is part of the Symfony package. | |
| * | |
| * (c) Fabien Potencier <fabien@symfony.com> | |
| * | |
| * For the full copyright and license information, please view the LICENSE | |
| * file that was distributed with this source code. | |
| */ | |
| namespace Symfony\Component\Process\Tests; | |
| use PHPUnit\Framework\TestCase; | |
| use Symfony\Component\Process\Exception\ProcessFailedException; | |
| /** | |
| * @author Sebastian Marek <proofek@gmail.com> | |
| */ | |
| class ProcessFailedExceptionTest extends TestCase | |
| { | |
| /** | |
| * tests ProcessFailedException throws exception if the process was successful. | |
| */ | |
| public function testProcessFailedExceptionThrowsException() | |
| { | |
| $process = $this->getMockBuilder('Symfony\Component\Process\Process')->setMethods(array('isSuccessful'))->setConstructorArgs(array('php'))->getMock(); | |
| $process->expects($this->once()) | |
| ->method('isSuccessful') | |
| ->will($this->returnValue(true)); | |
| $this->{method_exists($this, $_ = 'expectException') ? $_ : 'setExpectedException'}( | |
| '\InvalidArgumentException', | |
| 'Expected a failed process, but the given process was successful.' | |
| ); | |
| new ProcessFailedException($process); | |
| } | |
| /** | |
| * tests ProcessFailedException uses information from process output | |
| * to generate exception message. | |
| */ | |
| public function testProcessFailedExceptionPopulatesInformationFromProcessOutput() | |
| { | |
| $cmd = 'php'; | |
| $exitCode = 1; | |
| $exitText = 'General error'; | |
| $output = 'Command output'; | |
| $errorOutput = 'FATAL: Unexpected error'; | |
| $workingDirectory = getcwd(); | |
| $process = $this->getMockBuilder('Symfony\Component\Process\Process')->setMethods(array('isSuccessful', 'getOutput', 'getErrorOutput', 'getExitCode', 'getExitCodeText', 'isOutputDisabled', 'getWorkingDirectory'))->setConstructorArgs(array($cmd))->getMock(); | |
| $process->expects($this->once()) | |
| ->method('isSuccessful') | |
| ->will($this->returnValue(false)); | |
| $process->expects($this->once()) | |
| ->method('getOutput') | |
| ->will($this->returnValue($output)); | |
| $process->expects($this->once()) | |
| ->method('getErrorOutput') | |
| ->will($this->returnValue($errorOutput)); | |
| $process->expects($this->once()) | |
| ->method('getExitCode') | |
| ->will($this->returnValue($exitCode)); | |
| $process->expects($this->once()) | |
| ->method('getExitCodeText') | |
| ->will($this->returnValue($exitText)); | |
| $process->expects($this->once()) | |
| ->method('isOutputDisabled') | |
| ->will($this->returnValue(false)); | |
| $process->expects($this->once()) | |
| ->method('getWorkingDirectory') | |
| ->will($this->returnValue($workingDirectory)); | |
| $exception = new ProcessFailedException($process); | |
| $this->assertEquals( | |
| "The command \"$cmd\" failed.\n\nExit Code: $exitCode($exitText)\n\nWorking directory: {$workingDirectory}\n\nOutput:\n================\n{$output}\n\nError Output:\n================\n{$errorOutput}", | |
| $exception->getMessage() | |
| ); | |
| } | |
| /** | |
| * Tests that ProcessFailedException does not extract information from | |
| * process output if it was previously disabled. | |
| */ | |
| public function testDisabledOutputInFailedExceptionDoesNotPopulateOutput() | |
| { | |
| $cmd = 'php'; | |
| $exitCode = 1; | |
| $exitText = 'General error'; | |
| $workingDirectory = getcwd(); | |
| $process = $this->getMockBuilder('Symfony\Component\Process\Process')->setMethods(array('isSuccessful', 'isOutputDisabled', 'getExitCode', 'getExitCodeText', 'getOutput', 'getErrorOutput', 'getWorkingDirectory'))->setConstructorArgs(array($cmd))->getMock(); | |
| $process->expects($this->once()) | |
| ->method('isSuccessful') | |
| ->will($this->returnValue(false)); | |
| $process->expects($this->never()) | |
| ->method('getOutput'); | |
| $process->expects($this->never()) | |
| ->method('getErrorOutput'); | |
| $process->expects($this->once()) | |
| ->method('getExitCode') | |
| ->will($this->returnValue($exitCode)); | |
| $process->expects($this->once()) | |
| ->method('getExitCodeText') | |
| ->will($this->returnValue($exitText)); | |
| $process->expects($this->once()) | |
| ->method('isOutputDisabled') | |
| ->will($this->returnValue(true)); | |
| $process->expects($this->once()) | |
| ->method('getWorkingDirectory') | |
| ->will($this->returnValue($workingDirectory)); | |
| $exception = new ProcessFailedException($process); | |
| $this->assertEquals( | |
| "The command \"$cmd\" failed.\n\nExit Code: $exitCode($exitText)\n\nWorking directory: {$workingDirectory}", | |
| $exception->getMessage() | |
| ); | |
| } | |
| } | |