summaryrefslogtreecommitdiffstats
path: root/tests/support/TestHelper.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/support/TestHelper.php')
-rw-r--r--tests/support/TestHelper.php29
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);
+ }
}