From 2b209d27d03ae03c586adce30fceb7b2865b93a0 Mon Sep 17 00:00:00 2001 From: Clark Tomlinson Date: Fri, 26 Sep 2014 10:14:59 -0400 Subject: [PATCH] Adding test helper to test private methods --- tests/lib/helper.php | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/tests/lib/helper.php b/tests/lib/helper.php index cb342e295ba..520a3e0e669 100644 --- a/tests/lib/helper.php +++ b/tests/lib/helper.php @@ -496,4 +496,32 @@ class Test_Helper extends PHPUnit_Framework_TestCase { \OC_Helper::rmdirr($baseDir); $this->assertFalse(file_exists($baseDir)); } + + /** + * Allows us to test private methods/properties + * + * @param $object + * @param $methodName + * @param array $parameters + * @return mixed + */ + public static function invokePrivate($object, $methodName, array $parameters = array()) { + $reflection = new ReflectionClass(get_class($object)); + + if ($reflection->hasMethod($methodName)) { + $method = $reflection->getMethod($methodName); + + $method->setAccessible(true); + + return $method->invokeArgs($object, $parameters); + } elseif ($reflection->hasProperty($methodName)) { + $property = $reflection->getProperty($methodName); + + $property->setAccessible(true); + + return $property->getValue($object); + } + + return false; + } } -- 2.39.5