function test_instantiateController() { $file = MAX_PATH . '/lib/OA/Admin/Statistics/Delivery/Common.php'; $aParams = array(); $class = 'OA_Admin_Statistics_Delivery_Common'; $oObject =& OA_Admin_Statistics_Factory::_instantiateController($file, $class, $aParams); $this->assertIsA($oObject, $class); $this->assertEqual(count($oObject->aPlugins), 2); $this->assertTrue(isset($oObject->aPlugins['default'])); $this->assertTrue(isset($oObject->aPlugins['affiliates'])); $file = MAX_PATH . '/lib/OA/Admin/Statistics/tests/data/TestStatisticsController.php'; $aParams = array(); $class = 'OA_Admin_Statistics_Test'; $oObject =& OA_Admin_Statistics_Factory::_instantiateController($file, $class, $aParams); $this->assertIsA($oObject, $class); // Disable default error handling PEAR::pushErrorHandling(null); // Test _instantiateController for not existing controller $file = MAX_PATH . '/lib/OA/Admin/Statistics/tests/data/TestNotExists.php'; $aParams = array(); $class = 'OA_Admin_Statistics_Test'; $oObject =& OA_Admin_Statistics_Factory::_instantiateController($file, $class, $aParams); $this->assertTrue(PEAR::isError($oObject)); $this->assertEqual($oObject->getMessage(), 'OA_Admin_Statistics_Factory::_instantiateController() Unable to locate ' . basename($file)); // Test _instantiateController for not existing class $file = MAX_PATH . '/lib/OA/Admin/Statistics/tests/data/TestStatisticsController.php'; $aParams = array(); $class = 'OA_Admin_not_exists'; $oObject =& OA_Admin_Statistics_Factory::_instantiateController($file, $class, $aParams); $this->assertTrue(PEAR::isError($oObject)); $this->assertEqual($oObject->getMessage(), 'OA_Admin_Statistics_Factory::_instantiateController() Class ' . $class . ' doesn\'t exist'); // Restore default error handling PEAR::popErrorHandling(); }
/** * Create a new object of the appropriate OA_Admin_Statistics_Common subclass. * * @static * @param string $controllerType The controller type (e.g. "global-advertiser"). * @param array $aParams An array of parameters to be passed as the parameter * to the constructor of the class instantiated. * @return OA_Admin_Statistics_Common The instantiated class that inherits from * OA_Admin_Statistics_Common. */ function &getController($controllerType = '', $aParams = null) { // Instantiate & return the required statistics class $result = OA_Admin_Statistics_Factory::_getControllerClass($controllerType, $aParams, $class, $file); if (PEAR::isError($result)) { return $result; } // To allow catch errors and pass it out without calling error handler PEAR::pushErrorHandling(null); $oStatsController = OA_Admin_Statistics_Factory::_instantiateController($file, $class, $aParams); PEAR::popErrorHandling(); return $oStatsController; }