diff vendor/phpunit/phpunit-mock-objects/src/Stub/ConsecutiveCalls.php @ 14:1fec387a4317

Update Drupal core to 8.5.2 via Composer
author Chris Cannam
date Mon, 23 Apr 2018 09:46:53 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/phpunit/phpunit-mock-objects/src/Stub/ConsecutiveCalls.php	Mon Apr 23 09:46:53 2018 +0100
@@ -0,0 +1,56 @@
+<?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)
+        );
+    }
+}