. */ /** * Doctrine_Query_Delete_TestCase * This test case is used for testing DQL DELETE queries * * @package Doctrine * @author Konsta Vesterinen * @license http://www.opensource.org/licenses/lgpl-license.php LGPL * @category Object Relational Mapping * @link www.phpdoctrine.org * @since 1.0 * @version $Revision$ */ class Doctrine_Query_Delete_TestCase extends Doctrine_UnitTestCase { public function testDeleteAllWithColumnAggregationInheritance() { $q = new Doctrine_Query(); $q->parseQuery('DELETE FROM User'); $this->assertEqual($q->getQuery(), 'DELETE FROM entity WHERE (type = 0)'); $q = new Doctrine_Query(); $q->delete()->from('User'); $this->assertEqual($q->getQuery(), 'DELETE FROM entity WHERE (type = 0)'); } public function testDeleteAll() { $q = new Doctrine_Query(); $q->parseQuery('DELETE FROM Entity'); $this->assertEqual($q->getQuery(), 'DELETE FROM entity WHERE (type = 2 OR type = 1 OR type = 0)'); $q = new Doctrine_Query(); $q->delete()->from('Entity'); $this->assertEqual($q->getQuery(), 'DELETE FROM entity WHERE (type = 2 OR type = 1 OR type = 0)'); } public function testDeleteWithCondition() { $q = new Doctrine_Query(); $q->parseQuery('DELETE FROM Entity WHERE id = 3'); $this->assertEqual($q->getQuery(), 'DELETE FROM entity WHERE id = 3 AND (type = 2 OR type = 1 OR type = 0)'); $q = new Doctrine_Query(); $q->delete()->from('Entity')->where('id = 3'); $this->assertEqual($q->getQuery(), 'DELETE FROM entity WHERE id = 3 AND (type = 2 OR type = 1 OR type = 0)'); } public function testDeleteWithLimit() { $q = new Doctrine_Query(); $q->parseQuery('DELETE FROM Entity LIMIT 20'); $this->assertEqual($q->getQuery(), 'DELETE FROM entity WHERE (type = 2 OR type = 1 OR type = 0) LIMIT 20'); $q = new Doctrine_Query(); $q->delete()->from('Entity')->limit(20); $this->assertEqual($q->getQuery(), 'DELETE FROM entity WHERE (type = 2 OR type = 1 OR type = 0) LIMIT 20'); } public function testDeleteWithLimitAndOffset() { $q = new Doctrine_Query(); $q->parseQuery('DELETE FROM Entity LIMIT 10 OFFSET 20'); $this->assertEqual($q->getQuery(), 'DELETE FROM entity WHERE (type = 2 OR type = 1 OR type = 0) LIMIT 10 OFFSET 20'); $q = new Doctrine_Query(); $q->delete()->from('Entity')->limit(10)->offset(20); $this->assertEqual($q->getQuery(), 'DELETE FROM entity WHERE (type = 2 OR type = 1 OR type = 0) LIMIT 10 OFFSET 20'); } }