/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallPrediction.php
https://bitbucket.org/alan_cordova/api-sb-map · PHP · 86 lines · 48 code · 11 blank · 27 comment · 2 complexity · 67daacc4a6b9459c26296c802dc1deb9 MD5 · raw file
- <?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;
- /**
- * Call prediction.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
- class CallPrediction implements PredictionInterface
- {
- private $util;
- /**
- * Initializes prediction.
- *
- * @param StringUtil $util
- */
- public function __construct(StringUtil $util = null)
- {
- $this->util = $util ?: new StringUtil;
- }
- /**
- * Tests that there was at least one call.
- *
- * @param Call[] $calls
- * @param ObjectProphecy $object
- * @param MethodProphecy $method
- *
- * @throws \Prophecy\Exception\Prediction\NoCallsException
- */
- 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);
- }
- }