Test writing utilities
Allows easy testing for protected methods and properties.
class Robot
{
protected $cache = [];
public function addToCache($key, $value) {
$this->cache[$key] = $value;
}
protected function helloTwo($one, $two)
{
return "hello $one $two";
}
}
$robot = new Robot;
$protected = (new Apiframework\Test\ProtectedReflectionFactory)->build($robot);
// Accepts an array of arguments equal to the amount of arguments of the method
$helloTwo = $protected->invokeMethod("helloTwo", ['varOne', 'varTwo']);
var_dump($helloTwo);
string(19) "hello varOne varTwo"
$protected->invokeMethod("addToCache", ['david', 'bowie']);
$cache = $protected->getProperty("cache");
var_dump($cache);
array(1) {
'david' =>
string(5) "bowie"
}
$protected->setProperty("cache", ['fab' => 'four']);
$cache = $protected->getProperty("cache");
var_dump($cache);
array(1) {
'fab' =>
string(4) "four"
}