/** * Test truncate with a mock. * * @return void */ public function testTruncateStatements() { $this->loadFixtures('Article', 'User'); $db = ConnectionManager::getDatasource('test'); $schema = $db->config['database']; $Article = new Article(); $this->Dbo = $this->getMock('Mysql', array('execute'), array($db->config)); $this->Dbo->expects($this->at(0))->method('execute') ->with("TRUNCATE TABLE `$schema`.`articles`"); $this->Dbo->truncate($Article); $this->Dbo->expects($this->at(0))->method('execute') ->with("TRUNCATE TABLE `$schema`.`articles`"); $this->Dbo->truncate('articles'); // #2355: prevent duplicate prefix $this->Dbo->config['prefix'] = 'tbl_'; $Article->tablePrefix = 'tbl_'; $this->Dbo->expects($this->at(0))->method('execute') ->with("TRUNCATE TABLE `$schema`.`tbl_articles`"); $this->Dbo->truncate($Article); $this->Dbo->expects($this->at(0))->method('execute') ->with("TRUNCATE TABLE `$schema`.`tbl_articles`"); $this->Dbo->truncate('articles'); }
/** * test hasAny() * * @return void */ public function testHasAny() { $this->Dbo = $this->getMock('Mysql', array('connect', '_execute', 'execute', 'value')); $this->Model = $this->getMock('TestModel', array('getDataSource')); $this->Model->expects($this->any())->method('getDataSource')->will($this->returnValue($this->Dbo)); $this->Dbo->expects($this->at(0))->method('value')->with('harry')->will($this->returnValue("'harry'")); $this->Dbo->expects($this->at(1))->method('execute')->with('SELECT COUNT(`TestModel`.`id`) AS count FROM `test_models` AS `TestModel` WHERE `TestModel`.`name` = \'harry\''); $this->Dbo->expects($this->at(2))->method('execute')->with('SELECT COUNT(`TestModel`.`id`) AS count FROM `test_models` AS `TestModel` WHERE 1 = 1'); $this->Dbo->hasAny($this->Model, array('TestModel.name' => 'harry')); $this->Dbo->hasAny($this->Model, array()); }
/** * Test deletes with a mock. * * @return void */ public function testDeleteStatements() { $this->loadFixtures('Article', 'User'); $test = ConnectionManager::getDatasource('test'); $this->Dbo = $this->getMock('Mysql', array('execute'), array($test->config)); $this->Dbo->expects($this->at(0))->method('execute')->with("DELETE FROM `articles` WHERE 1 = 1"); $this->Dbo->expects($this->at(1))->method('execute')->with("DELETE `Article` FROM `articles` AS `Article` LEFT JOIN `users` AS `User` ON (`Article`.`user_id` = `User`.`id`)" . " WHERE 1 = 1"); $this->Dbo->expects($this->at(2))->method('execute')->with("DELETE `Article` FROM `articles` AS `Article` LEFT JOIN `users` AS `User` ON (`Article`.`user_id` = `User`.`id`)" . " WHERE 2=2"); $Article = new Article(); $this->Dbo->delete($Article); $this->Dbo->delete($Article, true); $this->Dbo->delete($Article, '2=2'); }
/** * Test truncate with a mock. * * @return void */ public function testTruncateStatements() { $this->loadFixtures('Article', 'User'); $db = ConnectionManager::getDatasource('test'); $schema = $db->config['schema']; $Article = new Article(); $this->Dbo = $this->getMock('Postgres', array('execute'), array($db->config)); $this->Dbo->expects($this->at(0))->method('execute')->with("DELETE FROM \"{$schema}\".\"articles\""); $this->Dbo->truncate($Article); $this->Dbo->expects($this->at(0))->method('execute')->with("DELETE FROM \"{$schema}\".\"articles\""); $this->Dbo->truncate('articles'); // #2355: prevent duplicate prefix $this->Dbo->config['prefix'] = 'tbl_'; $Article->tablePrefix = 'tbl_'; $this->Dbo->expects($this->at(0))->method('execute')->with("DELETE FROM \"{$schema}\".\"tbl_articles\""); $this->Dbo->truncate($Article); $this->Dbo->expects($this->at(0))->method('execute')->with("DELETE FROM \"{$schema}\".\"tbl_articles\""); $this->Dbo->truncate('articles'); }