summaryrefslogtreecommitdiff
path: root/vendor/phpspec/prophecy/src/Prophecy/Call/Call.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/phpspec/prophecy/src/Prophecy/Call/Call.php')
-rw-r--r--vendor/phpspec/prophecy/src/Prophecy/Call/Call.php162
1 files changed, 162 insertions, 0 deletions
diff --git a/vendor/phpspec/prophecy/src/Prophecy/Call/Call.php b/vendor/phpspec/prophecy/src/Prophecy/Call/Call.php
new file mode 100644
index 000000000..265223545
--- /dev/null
+++ b/vendor/phpspec/prophecy/src/Prophecy/Call/Call.php
@@ -0,0 +1,162 @@
+<?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\Call;
+
+use Exception;
+use Prophecy\Argument\ArgumentsWildcard;
+
+/**
+ * Call object.
+ *
+ * @author Konstantin Kudryashov <[email protected]>
+ */
+class Call
+{
+ private $methodName;
+ private $arguments;
+ private $returnValue;
+ private $exception;
+ private $file;
+ private $line;
+ private $scores;
+
+ /**
+ * Initializes call.
+ *
+ * @param string $methodName
+ * @param array $arguments
+ * @param mixed $returnValue
+ * @param Exception $exception
+ * @param null|string $file
+ * @param null|int $line
+ */
+ public function __construct($methodName, array $arguments, $returnValue,
+ Exception $exception = null, $file, $line)
+ {
+ $this->methodName = $methodName;
+ $this->arguments = $arguments;
+ $this->returnValue = $returnValue;
+ $this->exception = $exception;
+ $this->scores = new \SplObjectStorage();
+
+ if ($file) {
+ $this->file = $file;
+ $this->line = intval($line);
+ }
+ }
+
+ /**
+ * Returns called method name.
+ *
+ * @return string
+ */
+ public function getMethodName()
+ {
+ return $this->methodName;
+ }
+
+ /**
+ * Returns called method arguments.
+ *
+ * @return array
+ */
+ public function getArguments()
+ {
+ return $this->arguments;
+ }
+
+ /**
+ * Returns called method return value.
+ *
+ * @return null|mixed
+ */
+ public function getReturnValue()
+ {
+ return $this->returnValue;
+ }
+
+ /**
+ * Returns exception that call thrown.
+ *
+ * @return null|Exception
+ */
+ public function getException()
+ {
+ return $this->exception;
+ }
+
+ /**
+ * Returns callee filename.
+ *
+ * @return string
+ */
+ public function getFile()
+ {
+ return $this->file;
+ }
+
+ /**
+ * Returns callee line number.
+ *
+ * @return int
+ */
+ public function getLine()
+ {
+ return $this->line;
+ }
+
+ /**
+ * Returns short notation for callee place.
+ *
+ * @return string
+ */
+ public function getCallPlace()
+ {
+ if (null === $this->file) {
+ return 'unknown';
+ }
+
+ return sprintf('%s:%d', $this->file, $this->line);
+ }
+
+ /**
+ * Adds the wildcard match score for the provided wildcard.
+ *
+ * @param ArgumentsWildcard $wildcard
+ * @param false|int $score
+ *
+ * @return $this
+ */
+ public function addScore(ArgumentsWildcard $wildcard, $score)
+ {
+ $this->scores[$wildcard] = $score;
+
+ return $this;
+ }
+
+ /**
+ * Returns wildcard match score for the provided wildcard. The score is
+ * calculated if not already done.
+ *
+ * @param ArgumentsWildcard $wildcard
+ *
+ * @return false|int False OR integer score (higher - better)
+ */
+ public function getScore(ArgumentsWildcard $wildcard)
+ {
+ if (isset($this->scores[$wildcard])) {
+ return $this->scores[$wildcard];
+ }
+
+ return $this->scores[$wildcard] = $wildcard->scoreArguments($this->getArguments());
+ }
+}