diff --git a/src/Spamer/DependencyMocker/Mocker.php b/src/Spamer/DependencyMocker/Mocker.php index f1db95d..bc04d9a 100644 --- a/src/Spamer/DependencyMocker/Mocker.php +++ b/src/Spamer/DependencyMocker/Mocker.php @@ -133,4 +133,22 @@ public static function getProperty($class, $property, $object) $property->setAccessible(TRUE); return $property->getValue($object); } + + + /** + * Calls private method and returns result. + * + * @param object $object + * @param string $method + * @param array $arguments + * @return mixed + */ + public static function callPrivateFunction($object, $method, $arguments = []) + { + $reflectionClass = new \ReflectionClass($object); + $reflectionMethod = $reflectionClass->getMethod($method); + $reflectionMethod->setAccessible(TRUE); + + return $reflectionMethod->invokeArgs($object, $arguments); + } } \ No newline at end of file diff --git a/tests/DependencyMocker/Mocker/CallPrivateFunction.phpt b/tests/DependencyMocker/Mocker/CallPrivateFunction.phpt new file mode 100644 index 0000000..69e417c --- /dev/null +++ b/tests/DependencyMocker/Mocker/CallPrivateFunction.phpt @@ -0,0 +1,27 @@ +run(); \ No newline at end of file diff --git a/tests/bootstrap.php b/tests/bootstrap.php new file mode 100644 index 0000000..9de0229 --- /dev/null +++ b/tests/bootstrap.php @@ -0,0 +1,8 @@ +