ReturnArgumentPromise.php in Zircon Profile 8
Same filename and directory in other branches
Namespace
Prophecy\PromiseFile
vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnArgumentPromise.phpView source
<?php
/*
* This file is part of the Prophecy.
* (c) Konstantin Kudryashov <ever.zet@gmail.com>
* Marcello Duarte <marcello.duarte@gmail.com>
*
* 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 <ever.zet@gmail.com>
*/
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('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;
}
}
Classes
Name | Description |
---|---|
ReturnArgumentPromise | Return argument promise. |