diff options
Diffstat (limited to 'tests/support/TestHelper.php')
-rw-r--r-- | tests/support/TestHelper.php | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/tests/support/TestHelper.php b/tests/support/TestHelper.php index a046e4e..05b40d7 100644 --- a/tests/support/TestHelper.php +++ b/tests/support/TestHelper.php @@ -20,14 +20,14 @@ trait TestHelper /** * Get the controller class - * + * * @return string */ protected function getControllerClass() { return Controller::class; } - + /** * Get mock for controller * @@ -46,14 +46,14 @@ trait TestHelper if (isset($mockClassName)) { $builder->setMockClassName($mockClassName); } - + $getMock = trait_exists($class) ? 'getMockForTrait' : 'getMockForAbstractClass'; return $builder->$getMock(); } - + /** * Set a private or protected property of the given object - * + * * @param object $object * @param string $property * @param mixed $value @@ -63,9 +63,26 @@ trait TestHelper if (!is_object($object)) { throw new \InvalidArgumentException("Excpected an object, got a " . gettype($object)); } - + $refl = new \ReflectionProperty($object, $property); $refl->setAccessible(true); $refl->setValue($object, $value); } + + /** + * Call protected method on some object + * + * @param object $object + * @param string $name Method name + * @param array $args + * @return mixed Result of method call + */ + protected function callProtectedMethod($object, $name, $args) + { + $class = new \ReflectionClass($object); + $method = $class->getMethod($name); + $method->setAccessible(true); + + return $method->invokeArgs($object, $args); + } } |