Version 1
[yaffs-website] / vendor / phpunit / phpunit-mock-objects / src / Framework / MockObject / Stub / ReturnValueMap.php
diff --git a/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnValueMap.php b/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnValueMap.php
new file mode 100644 (file)
index 0000000..25ba4d1
--- /dev/null
@@ -0,0 +1,47 @@
+<?php
+/*
+ * This file is part of the PHPUnit_MockObject 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.
+ */
+
+/**
+ * Stubs a method by returning a value from a map.
+ *
+ * @since Class available since Release 1.1.0
+ */
+class PHPUnit_Framework_MockObject_Stub_ReturnValueMap implements PHPUnit_Framework_MockObject_Stub
+{
+    protected $valueMap;
+
+    public function __construct(array $valueMap)
+    {
+        $this->valueMap = $valueMap;
+    }
+
+    public function invoke(PHPUnit_Framework_MockObject_Invocation $invocation)
+    {
+        $parameterCount = count($invocation->parameters);
+
+        foreach ($this->valueMap as $map) {
+            if (!is_array($map) || $parameterCount != count($map) - 1) {
+                continue;
+            }
+
+            $return = array_pop($map);
+            if ($invocation->parameters === $map) {
+                return $return;
+            }
+        }
+
+        return;
+    }
+
+    public function toString()
+    {
+        return 'return value from a map';
+    }
+}