for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
/*
* This file is part of the Prophecy.
* (c) Konstantin Kudryashov <[email protected]>
* Marcello Duarte <[email protected]>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Prophecy\Promise;
use Prophecy\Exception\InvalidArgumentException;
use Prophecy\Prophecy\ObjectProphecy;
use Prophecy\Prophecy\MethodProphecy;
/**
* Return argument promise.
* @author Konstantin Kudryashov <[email protected]>
class ReturnArgumentPromise implements PromiseInterface
{
* @var int
private $index;
* Initializes callback promise.
* @param int $index The zero-indexed number of the argument to return
* @throws \Prophecy\Exception\InvalidArgumentException
public function __construct($index = 0)
if (!is_int($index) || $index < 0) {
throw new InvalidArgumentException(sprintf(
'Zero-based index expected as argument to ReturnArgumentPromise, but got %s.',
$index
));
}
$this->index = $index;
* Returns nth argument if has one, null otherwise.
* @param array $args
* @param ObjectProphecy $object
* @param MethodProphecy $method
* @return null|mixed
public function execute(array $args, ObjectProphecy $object, MethodProphecy $method)
return count($args) > $this->index ? $args[$this->index] : null;