use testing tools

This commit is contained in:
2024-01-31 21:13:53 +01:00
bovenliggende f5afd4617f
commit 8345a843c3
5 gewijzigde bestanden met toevoegingen van 19 en 362 verwijderingen

Bestand weergeven

@ -17,13 +17,15 @@ namespace D3\DIContainerHandler\tests;
use D3\DIContainerHandler\d3DicHandler;
use D3\DIContainerHandler\d3DicUtilities;
use D3\TestingTools\Development\CanAccessRestricted;
use Generator;
use PHPUnit\Framework\TestCase;
use ReflectionClass;
use ReflectionException;
class d3DicUtilitiesTest extends TestCase
{
use CanAccessRestricted;
/**
* @test
* @param string $className
@ -103,92 +105,4 @@ class d3DicUtilitiesTest extends TestCase
)
);
}
/**************/
/**
* Calls a private or protected object method.
*
* @param object $object
* @param string $methodName
* @param array $arguments
*
* @return mixed
* @throws ReflectionException
*/
public function callMethod($object, $methodName, array $arguments = [])
{
$class = new ReflectionClass($object);
$method = $class->getMethod($methodName);
$method->setAccessible(true);
return $method->invokeArgs($object, $arguments);
}
/**
* Sets a private or protected property in defined class instance
*
* @param object $object
* @param string $valueName
* @param mixed $value
* @throws ReflectionException
*/
public function setValue($object, $valueName, $value)
{
$reflection = new ReflectionClass($object);
$property = $reflection->getProperty($valueName);
$property->setAccessible(true);
$property->setValue($object, $value);
}
/**
* Sets a private or protected property in mocked class instance based on original class
* (required for e.g. final properties, which aren't contained in mock, but in original class)
* @param $mockedClassName * FQNS of original class
* @param $object * mock object
* @param $valueName * property name
* @param $value * new property value
*
* @throws ReflectionException
*/
public function setMockedClassValue($mockedClassName, $object, $valueName, $value)
{
$property = new \ReflectionProperty($mockedClassName, $valueName);
$property->setAccessible(true);
$property->setValue($object, $value);
}
/**
* get a private or protected property from defined class instance
*
* @param object $object
* @param string $valueName
* @param mixed $value
* @return mixed
* @throws ReflectionException
*/
public function getValue($object, $valueName)
{
$reflection = new ReflectionClass($object);
$property = $reflection->getProperty($valueName);
$property->setAccessible(true);
return $property->getValue($object);
}
/**
* get a private or protected property from mocked class instance based on original class
* (required for e.g. final properties, which aren't contained in mock, but in original class)
* @param object $object
* @param string $valueName
* @param mixed $value
* @return mixed
* @throws ReflectionException
*/
public function getMockedClassValue($mockedClassName, $object, $valueName)
{
$property = new \ReflectionProperty($mockedClassName, $valueName);
$property->setAccessible(true);
return $property->getValue($object);
}
}
}