Mercurial > hg > isophonics-drupal-site
view vendor/phpunit/phpunit-mock-objects/src/Stub/ConsecutiveCalls.php @ 17:129ea1e6d783
Update, including to Drupal core 8.6.10
author | Chris Cannam |
---|---|
date | Thu, 28 Feb 2019 13:21:36 +0000 |
parents | 1fec387a4317 |
children |
line wrap: on
line source
<?php /* * This file is part of the phpunit-mock-objects package. * * (c) Sebastian Bergmann <sebastian@phpunit.de> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace PHPUnit\Framework\MockObject\Stub; use PHPUnit\Framework\MockObject\Invocation; use PHPUnit\Framework\MockObject\Stub; use SebastianBergmann\Exporter\Exporter; /** * Stubs a method by returning a user-defined stack of values. */ class ConsecutiveCalls implements Stub { /** * @var array */ private $stack; /** * @var mixed */ private $value; public function __construct(array $stack) { $this->stack = $stack; } public function invoke(Invocation $invocation) { $this->value = \array_shift($this->stack); if ($this->value instanceof Stub) { $this->value = $this->value->invoke($invocation); } return $this->value; } public function toString() { $exporter = new Exporter; return \sprintf( 'return user-specified value %s', $exporter->export($this->value) ); } }