/** * Sets up the fixture, for example * This method is called before a test is executed. * * @access protected */ protected function setUp() { // creates layer instances $this->frontend = new Tinebase_Pluggable_DummyFrontend(); $this->controller = new Tinebase_Pluggable_DummyController(); $this->backend = new Tinebase_Pluggable_DummyBackend(); // injects plugin into layers Tinebase_Frontend_Abstract::attachPlugin('dummyPluginMethod', 'Tinebase_Pluggable_Plugin_DummyPlugin'); Tinebase_Controller_Abstract::attachPlugin('dummyPluginMethod', 'Tinebase_Pluggable_Plugin_DummyPlugin'); Tinebase_Backend_Abstract::attachPlugin('dummyPluginMethod', 'Tinebase_Pluggable_Plugin_DummyPlugin'); }
/** * magic method for json api * * @param string $method * @param array $args */ public function __call($method, array $args) { // provides api for default application methods if (preg_match('/^(get|save|search|delete)([a-z0-9]+)/i', $method, $matches)) { $apiMethod = $matches[1]; $model = in_array($apiMethod, array('search', 'delete')) ? substr($matches[2], 0, -1) : $matches[2]; $modelController = Tinebase_Core::getApplicationInstance($this->_applicationName, $model); switch ($apiMethod) { case 'get': return $this->_get($args[0], $modelController); break; case 'save': return $this->_save($args[0], $modelController, $model); break; case 'search': $filterName = $this->_applicationName . '_Model_' . $model . 'Filter'; return $this->_search($args[0], $args[1], $modelController, $filterName, true); break; case 'delete': return $this->_delete($args[0], $modelController); break; } } // call plugin method (see Tinebase_Pluggable_Abstract) return parent::__call($method, $args); }