CallPrediction.php
Namespace
Prophecy\PredictionFile
-
vendor/
phpspec/ prophecy/ src/ Prophecy/ Prediction/ CallPrediction.php
View 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\Prediction;
use Prophecy\Call\Call;
use Prophecy\Prophecy\ObjectProphecy;
use Prophecy\Prophecy\MethodProphecy;
use Prophecy\Argument\ArgumentsWildcard;
use Prophecy\Argument\Token\AnyValuesToken;
use Prophecy\Util\StringUtil;
use Prophecy\Exception\Prediction\NoCallsException;
/**
* Tests that there was at least one call.
*
* @author Konstantin Kudryashov <ever.zet@gmail.com>
*/
class CallPrediction implements PredictionInterface {
private $util;
public function __construct(?StringUtil $util = null) {
$this->util = $util ?: new StringUtil();
}
public function check(array $calls, ObjectProphecy $object, MethodProphecy $method) {
if (count($calls)) {
return;
}
$methodCalls = $object->findProphecyMethodCalls($method->getMethodName(), new ArgumentsWildcard(array(
new AnyValuesToken(),
)));
if (count($methodCalls)) {
throw new NoCallsException(sprintf("No calls have been made that match:\n" . " %s->%s(%s)\n" . "but expected at least one.\n" . "Recorded `%s(...)` calls:\n%s", get_class($object->reveal()), $method->getMethodName(), $method->getArgumentsWildcard(), $method->getMethodName(), $this->util
->stringifyCalls($methodCalls)), $method);
}
throw new NoCallsException(sprintf("No calls have been made that match:\n" . " %s->%s(%s)\n" . "but expected at least one.", get_class($object->reveal()), $method->getMethodName(), $method->getArgumentsWildcard()), $method);
}
}
Classes
Title | Deprecated | Summary |
---|---|---|
CallPrediction | Tests that there was at least one call. |