2012-04-25 15:42:54 +01:00
< ? 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 ;
2012-08-30 20:25:16 +01:00
use Symfony\Component\Process\Exception\ProcessFailedException ;
2012-04-25 15:42:54 +01:00
/**
* @ author Sebastian Marek < proofek @ gmail . com >
*/
class ProcessFailedExceptionTest extends \PHPUnit_Framework_TestCase
{
/**
* tests ProcessFailedException throws exception if the process was successful
*/
public function testProcessFailedExceptionThrowsException ()
{
$process = $this -> getMock (
'Symfony\Component\Process\Process' ,
array ( 'isSuccessful' ),
array ( 'php' )
);
$process -> expects ( $this -> once ())
-> method ( 'isSuccessful' )
-> will ( $this -> returnValue ( true ));
$this -> setExpectedException (
'\InvalidArgumentException' ,
'Expected a failed process, but the given process was successful.'
);
2013-05-06 10:50:13 +01:00
new ProcessFailedException ( $process );
2012-04-25 15:42:54 +01:00
}
/**
* tests ProcessFailedException uses information from process output
* to generate exception message
*/
public function testProcessFailedExceptionPopulatesInformationFromProcessOutput ()
{
$cmd = 'php' ;
2013-04-11 14:44:10 +01:00
$exitCode = 1 ;
$exitText = 'General error' ;
2012-04-25 15:42:54 +01:00
$output = " Command output " ;
$errorOutput = " FATAL: Unexpected error " ;
$process = $this -> getMock (
'Symfony\Component\Process\Process' ,
2013-04-11 14:44:10 +01:00
array ( 'isSuccessful' , 'getOutput' , 'getErrorOutput' , 'getExitCode' , 'getExitCodeText' ),
2012-04-25 15:42:54 +01:00
array ( $cmd )
);
$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 ));
2013-04-11 14:44:10 +01:00
$process -> expects ( $this -> once ())
-> method ( 'getExitCode' )
-> will ( $this -> returnValue ( $exitCode ));
$process -> expects ( $this -> once ())
-> method ( 'getExitCodeText' )
-> will ( $this -> returnValue ( $exitText ));
2012-04-25 15:42:54 +01:00
$exception = new ProcessFailedException ( $process );
$this -> assertEquals (
2013-04-11 14:44:10 +01:00
" The command \" $cmd\ " failed . \nExit Code : $exitCode ( $exitText ) \n\nOutput : \n ================ \n { $output } \n\nError Output : \n ================ \n { $errorOutput } " ,
2012-04-25 15:42:54 +01:00
$exception -> getMessage ()
);
}
}