Skip to content

Commit f3448c8

Browse files
committed
Merge branch '2.4-develop' of https://github.com/magento-commerce/magento2ce into ACP2E-4294
2 parents 313d888 + ef95248 commit f3448c8

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

lib/internal/Magento/Framework/TestFramework/Unit/Helper/ObjectManager.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -393,4 +393,27 @@ public function prepareObjectManager(array $map = [])
393393
$reflectionProperty->setAccessible(true);
394394
$reflectionProperty->setValue($objectManagerMock, $objectManagerMock);
395395
}
396+
397+
/**
398+
* Create a partial mock with reflection.
399+
*
400+
* @param string $className
401+
* @param array $methods
402+
* @return MockObject
403+
*/
404+
public function createPartialMockWithReflection(string $className, array $methods): MockObject
405+
{
406+
$reflection = new \ReflectionClass($this->_testObject);
407+
$getMockBuilderMethod = $reflection->getMethod('getMockBuilder');
408+
$getMockBuilderMethod->setAccessible(true);
409+
$mockBuilder = $getMockBuilderMethod->invoke($this->_testObject, $className);
410+
411+
$builderReflection = new \ReflectionClass($mockBuilder);
412+
$methodsProperty = $builderReflection->getProperty('methods');
413+
$methodsProperty->setAccessible(true);
414+
$methodsProperty->setValue($mockBuilder, $methods);
415+
416+
$mockBuilder->disableOriginalConstructor();
417+
return $mockBuilder->getMock();
418+
}
396419
}

0 commit comments

Comments
 (0)