public function testFactory() { $this->object->getPluginLoader()->addPrefixPath('Test', 'Test'); $class = $this->getMock('System_Controller_Action_Helper_GridFilter_Abstract', array(), array(), 'Test_Test'); $object = $this->object->factory(array('type' => 'Test')); self::assertType('Test_Test', $object); }
/** * Get basic select (select {$fields} from {$table}) and add filters, order and limit info from request * @param Zend_Db_Table_Abstract $table * @param string|array $fields array of fields or "*" Use as {@see Zend_Db_Select::from()} second params * @return Zend_Db_Select */ public function getSelect(Zend_Db_Table_Abstract $table, $fields = "*") { //create basic selects $select = $table->getAdapter()->select()->from($table->info(Zend_Db_Table_Abstract::NAME), $fields); $cols = $table->info(Zend_Db_Table::COLS); //add filters support foreach ((array) $this->getRequest()->getParam('filter') as $value) { $field = $value['field']; if (in_array($field, $cols)) { $filter = System_Controller_Action_Helper_GridFilter_Abstract::factory($value['data']); $filter->setField($field); $filter->filter($select); } } //add sort $sortCol = $this->getRequest()->getParam('sort'); if (in_array($sortCol, $cols)) { $select->order($sortCol . ' ' . $this->_getDirState('dir')); } //set limit $select->limit((int) $this->getRequest()->getParam('limit', 25), (int) $this->getRequest()->getParam('start')); return $select; }