. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU Affero General Public License version 3. * * In accordance with Section 7(b) of the GNU Affero General Public License version 3, * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ namespace tests\unit; class ReflectionHelper { private $object; private $reflection; public function __construct($object) { $this->object = $object; $this->reflection = new \ReflectionClass(get_class($this->object)); } public function invokeMethod($methodName, array $parameters = array()) { $method = $this->reflection->getMethod($methodName); $method->setAccessible(true); return $method->invokeArgs($this->object, $parameters); } public function getProperty($name) { $property = $this->reflection->getProperty($name); $property->setAccessible(true); return $property->getValue($this->object); } public function setProperty($name, $value) { $property = $this->reflection->getProperty($name); $property->setAccessible(true); $property->setValue($this->object, $value); } }