diff --git a/src/Framework/TestCase.php b/src/Framework/TestCase.php index 56d5ee754f0..96572764e7b 100644 --- a/src/Framework/TestCase.php +++ b/src/Framework/TestCase.php @@ -2606,13 +2606,11 @@ private function registerMockObjectsFromTestArguments(array $testArguments) } else { foreach ($testArguments as $testArgument) { if ($testArgument instanceof PHPUnit_Framework_MockObject_MockObject) { - $original = $testArgument; - - if ($this->isSaveCloneForMockObjectsFromTestArguments(new ReflectionObject($original))) { - $original = clone $original; + if ($this->isCloneable($testArgument)) { + $testArgument = clone $testArgument; } - $this->registerMockObject($original); + $this->registerMockObject($testArgument); } elseif (is_array($testArgument)) { $this->registerMockObjectsFromTestArguments($testArgument); } @@ -2633,20 +2631,21 @@ private function setDoesNotPerformAssertionsFromAnnotation() } /** - * @param ReflectionObject $reflection + * @param PHPUnit_Framework_MockObject_MockObject $testArgument + * * @return bool */ - private function isSaveCloneForMockObjectsFromTestArguments(ReflectionObject $reflection) + private function isCloneable(PHPUnit_Framework_MockObject_MockObject $testArgument) { - if (method_exists($reflection, 'isCloneable') && !$reflection->isCloneable()) { + $reflector = new ReflectionObject($testArgument); + + if (!$reflector->isCloneable()) { return false; } - if ($reflection->hasMethod('__clone')) { - $method = $reflection->getMethod('__clone'); - if ($method->isPublic()) { - return true; - } + if ($reflector->hasMethod('__clone') && + $reflector->getMethod('__clone')->isPublic()) { + return true; } return false; diff --git a/tests/Regression/GitHub/2382/Issue2382Test.php b/tests/Regression/GitHub/2382/Issue2382Test.php index b0e6d34527f..9fd49cb0f97 100644 --- a/tests/Regression/GitHub/2382/Issue2382Test.php +++ b/tests/Regression/GitHub/2382/Issue2382Test.php @@ -3,7 +3,6 @@ class Issue2382Test extends TestCase { - /** * @dataProvider dataProvider */