function testCreatePlugin() { $plugin_dao = new MockPluginDao($this); $access_result = new MockDataAccessResult($this); $plugin_dao->setReturnReference('searchByName', $access_result); $access_result->setReturnValueAt(0, 'getRow', array('id' => 123, 'name' => 'plugin 123', 'available' => '1')); //existing plugin $access_result->setReturnValueAt(1, 'getRow', false); //new plugin $plugin_dao->setReturnValueAt(0, 'create', 125); //its id $plugin_dao->setReturnValueAt(0, 'create', false); //error $restrictor = mock('PluginResourceRestrictor'); $pf = partial_mock('PluginFactory', array('_getClassNameForPluginName'), array($plugin_dao, $restrictor)); $pf->setReturnValue('_getClassNameForPluginName', array('class' => 'Plugin', 'custom' => false)); $this->assertFalse($pf->createPlugin('existing plugin')); $plugin = $pf->createPlugin('new plugin'); $this->assertEqual($plugin->getId(), 125); $this->assertFalse($pf->createPlugin('error plugin creation')); }
function testCreatePlugin() { $plugin_dao = new MockPluginDao($this); $access_result = new MockDataAccessResult($this); $plugin_dao->setReturnReference('searchByName', $access_result); $access_result->setReturnValueAt(0, 'getRow', array('id' => 123, 'name' => 'plugin 123', 'available' => '1')); //existing plugin $access_result->setReturnValueAt(1, 'getRow', false); //new plugin $plugin_dao->setReturnValueAt(0, 'create', 125); //its id $plugin_dao->setReturnValueAt(0, 'create', false); //error $pf = new PluginFactoryTestVersion($this); $pf->setReturnValue('_getClassNameForPluginName', array('class' => 'Plugin', 'custom' => false)); $pf->PluginFactory($plugin_dao); //Only for test. You should use singleton instead $this->assertFalse($pf->createPlugin('existing plugin')); $plugin = $pf->createPlugin('new plugin'); $this->assertEqual($plugin->getId(), 125); $this->assertFalse($pf->createPlugin('error plugin creation')); }