Changeset 4452 for trunk/tests/Orm
- Timestamp:
- 05/27/08 05:52:50 (8 months ago)
- Location:
- trunk/tests/Orm/Query
- Files:
-
- 6 modified
-
DeleteSqlGenerationTest.php (modified) (13 diffs)
-
DqlGenerationTest.php (modified) (6 diffs)
-
IdentifierRecognitionTest.php (modified) (4 diffs)
-
LanguageRecognitionTest.php (modified) (3 diffs)
-
SelectSqlGenerationTest.php (modified) (2 diffs)
-
UpdateSqlGenerationTest.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/tests/Orm/Query/DeleteSqlGenerationTest.php
r4431 r4452 38 38 class Orm_Query_DeleteSqlGenerationTest extends Doctrine_OrmTestCase 39 39 { 40 public function assertSqlGeneration($dqlToBeTested, $sqlToBeConfirmed) 41 { 42 try { 43 $entityManager = Doctrine_EntityManager::getManager(); 44 $query = $entityManager->createQuery($dqlToBeTested); 45 46 parent::assertEquals($sqlToBeConfirmed, $query->getSql()); 47 48 $query->free(); 49 } catch (Doctrine_Exception $e) { 50 $this->fail($e->getMessage()); 51 } 52 } 53 54 40 55 public function testWithoutWhere() 41 56 { 42 $q = new Doctrine_Query();43 44 57 // NO WhereClause 45 $q->setDql('DELETE CmsUser u'); 46 $this->assertEquals('DELETE FROM cms_user cu WHERE 1 = 1', $q->getSql()); 47 $q->free(); 48 49 $q->setDql('DELETE FROM CmsUser u'); 50 $this->assertEquals('DELETE FROM cms_user cu WHERE 1 = 1', $q->getSql()); 51 $q->free(); 58 $this->assertSqlGeneration( 59 'DELETE CmsUser u', 60 'DELETE FROM cms_user cu WHERE 1 = 1' 61 ); 62 63 $this->assertSqlGeneration( 64 'DELETE FROM CmsUser u', 65 'DELETE FROM cms_user cu WHERE 1 = 1' 66 ); 52 67 } 53 68 … … 55 70 public function testWithWhere() 56 71 { 57 $q = new Doctrine_Query();58 59 72 // "WHERE" ConditionalExpression 60 73 // ConditionalExpression = ConditionalTerm {"OR" ConditionalTerm} … … 67 80 68 81 // If this one test fail, all others will fail too. That's the simplest case possible 69 $q->setDql('DELETE CmsUser u WHERE id = ?'); 70 $this->assertEquals('DELETE FROM cms_user cu WHERE cu.id = ?', $q->getSql()); 71 $q->free(); 82 $this->assertSqlGeneration( 83 'DELETE CmsUser u WHERE id = ?', 84 'DELETE FROM cms_user cu WHERE cu.id = ?' 85 ); 72 86 } 73 87 … … 75 89 public function testWithConditionalExpressions() 76 90 { 77 $q = new Doctrine_Query(); 78 79 $q->setDql('DELETE CmsUser u WHERE u.username = ? OR u.name = ?'); 80 $this->assertEquals('DELETE FROM cms_user cu WHERE cu.username = ? OR cu.name = ?', $q->getSql()); 81 $q->free(); 82 83 $q->setDql('DELETE CmsUser u WHERE u.id = ? OR ( u.username = ? OR u.name = ? )'); 84 $this->assertEquals( 85 'DELETE FROM cms_user cu WHERE cu.id = ? OR (cu.username = ? OR cu.name = ?)', 86 $q->getSql() 87 ); 88 $q->free(); 89 90 $q->setDql('DELETE FROM CmsUser WHERE id = ?'); 91 $this->assertEquals('DELETE FROM cms_user cu WHERE cu.id = ?', $q->getSql()); 92 $q->free(); 93 } 94 95 96 public function testInvalidSyntaxIsRejected() 97 { 98 $q = new Doctrine_Query(); 99 100 $invalidDql = 'FOOBAR CmsUser'; 101 $q->setDql($invalidDql); 102 try { 103 $q->getSql(); 104 $this->fail("Invalid DQL '$invalidDql' was not rejected."); 105 } catch (Doctrine_Exception $parseEx) {} 106 $q->free(); 107 108 $invalidDql = 'DELETE FROM CmsUser.articles'; 109 $q->setDql($invalidDql); 110 try { 111 $q->getSql(); 112 $this->fail("Invalid DQL '$invalidDql' was not rejected."); 113 } catch (Doctrine_Exception $parseEx) {} 114 $q->free(); 115 116 $invalidDql = 'DELETE FROM CmsUser cu WHERE cu.articles.id > ?'; 117 $q->setDql($invalidDql); 118 try { 119 $q->getSql(); 120 $this->fail("Invalid DQL '$invalidDql' was not rejected."); 121 } catch (Doctrine_Exception $parseEx) {} 122 $q->free(); 91 $this->assertSqlGeneration( 92 'DELETE CmsUser u WHERE u.username = ? OR u.name = ?', 93 'DELETE FROM cms_user cu WHERE cu.username = ? OR cu.name = ?' 94 ); 95 96 $this->assertSqlGeneration( 97 'DELETE CmsUser u WHERE u.id = ? OR ( u.username = ? OR u.name = ? )', 98 'DELETE FROM cms_user cu WHERE cu.id = ? OR (cu.username = ? OR cu.name = ?)' 99 ); 100 101 $this->assertSqlGeneration( 102 'DELETE FROM CmsUser WHERE id = ?', 103 'DELETE FROM cms_user cu WHERE cu.id = ?' 104 ); 123 105 } 124 106 … … 126 108 public function testParserIsCaseAgnostic() 127 109 { 128 $q = new Doctrine_Query(); 129 $q->setDql('delete from CmsUser u where u.username = ?'); 130 $this->assertEquals('DELETE FROM cms_user cu WHERE cu.username = ?', $q->getSql()); 110 $this->assertSqlGeneration( 111 "delete from CmsUser u where u.username = ?", 112 "DELETE FROM cms_user cu WHERE cu.username = ?" 113 ); 131 114 } 132 115 … … 134 117 public function testWithConditionalTerms() 135 118 { 136 $q = new Doctrine_Query(); 137 138 $q->setDql('DELETE CmsUser u WHERE u.username = ? AND u.name = ?'); 139 $this->assertEquals('DELETE FROM cms_user cu WHERE cu.username = ? AND cu.name = ?', $q->getSql()); 140 $q->free(); 119 $this->assertSqlGeneration( 120 "DELETE CmsUser u WHERE u.username = ? AND u.name = ?", 121 "DELETE FROM cms_user cu WHERE cu.username = ? AND cu.name = ?" 122 ); 141 123 } 142 124 … … 144 126 public function testWithConditionalFactors() 145 127 { 146 $q = new Doctrine_Query(); 147 148 $q->setDql('DELETE CmsUser u WHERE NOT id != ?'); 149 $this->assertEquals('DELETE FROM cms_user cu WHERE NOT cu.id <> ?', $q->getSql()); 150 $q->free(); 151 152 $q->setDql('DELETE CmsUser u WHERE NOT ( id != ? )'); 153 $this->assertEquals('DELETE FROM cms_user cu WHERE NOT (cu.id <> ?)', $q->getSql()); 154 $q->free(); 155 156 $q->setDql('DELETE CmsUser u WHERE NOT ( id != ? AND username = ? )'); 157 $this->assertEquals('DELETE FROM cms_user cu WHERE NOT (cu.id <> ? AND cu.username = ?)', $q->getSql()); 158 $q->free(); 128 $this->assertSqlGeneration( 129 "DELETE CmsUser u WHERE NOT id != ?", 130 "DELETE FROM cms_user cu WHERE NOT cu.id <> ?" 131 ); 132 133 $this->assertSqlGeneration( 134 "DELETE CmsUser u WHERE NOT ( id != ? )", 135 "DELETE FROM cms_user cu WHERE NOT (cu.id <> ?)" 136 ); 137 138 $this->assertSqlGeneration( 139 "DELETE CmsUser u WHERE NOT ( id != ? AND username = ? )", 140 "DELETE FROM cms_user cu WHERE NOT (cu.id <> ? AND cu.username = ?)" 141 ); 159 142 } 160 143 … … 165 148 public function testWithExprAndComparison() 166 149 { 167 $q = new Doctrine_Query();168 169 150 // id = ? was already tested (see testDeleteWithWhere()) 170 171 $q->setDql('DELETE CmsUser u WHERE id > ?'); 172 $this->assertEquals('DELETE FROM cms_user cu WHERE cu.id > ?', $q->getSql()); 173 $q->free(); 174 175 $q->setDql('DELETE CmsUser u WHERE id >= ?'); 176 $this->assertEquals('DELETE FROM cms_user cu WHERE cu.id >= ?', $q->getSql()); 177 $q->free(); 178 179 $q->setDql('DELETE CmsUser u WHERE id < ?'); 180 $this->assertEquals('DELETE FROM cms_user cu WHERE cu.id < ?', $q->getSql()); 181 $q->free(); 182 183 $q->setDql('DELETE CmsUser u WHERE id <= ?'); 184 $this->assertEquals('DELETE FROM cms_user cu WHERE cu.id <= ?', $q->getSql()); 185 $q->free(); 186 187 $q->setDql('DELETE CmsUser u WHERE id <> ?'); 188 $this->assertEquals('DELETE FROM cms_user cu WHERE cu.id <> ?', $q->getSql()); 189 $q->free(); 190 191 $q->setDql('DELETE CmsUser u WHERE id != ?'); 192 $this->assertEquals('DELETE FROM cms_user cu WHERE cu.id <> ?', $q->getSql()); 193 $q->free(); 151 $this->assertSqlGeneration( 152 "DELETE CmsUser u WHERE id > ?", 153 "DELETE FROM cms_user cu WHERE cu.id > ?" 154 ); 155 156 $this->assertSqlGeneration( 157 "DELETE CmsUser u WHERE id >= ?", 158 "DELETE FROM cms_user cu WHERE cu.id >= ?" 159 ); 160 161 $this->assertSqlGeneration( 162 "DELETE CmsUser u WHERE id < ?", 163 "DELETE FROM cms_user cu WHERE cu.id < ?" 164 ); 165 166 $this->assertSqlGeneration( 167 "DELETE CmsUser u WHERE id <= ?", 168 "DELETE FROM cms_user cu WHERE cu.id <= ?" 169 ); 170 171 $this->assertSqlGeneration( 172 "DELETE CmsUser u WHERE id <> ?", 173 "DELETE FROM cms_user cu WHERE cu.id <> ?" 174 ); 175 176 $this->assertSqlGeneration( 177 "DELETE CmsUser u WHERE id != ?", 178 "DELETE FROM cms_user cu WHERE cu.id <> ?" 179 ); 194 180 } 195 181 … … 197 183 public function testWithExprAndBetween() 198 184 { 199 $q = new Doctrine_Query();200 201 185 // "WHERE" Expression BetweenExpression 202 $q->setDql('DELETE CmsUser u WHERE u.id NOT BETWEEN ? AND ?'); 203 $this->assertEquals('DELETE FROM cms_user cu WHERE cu.id NOT BETWEEN ? AND ?', $q->getSql()); 204 $q->free(); 205 206 $q->setDql('DELETE CmsUser u WHERE u.id BETWEEN ? AND ? AND u.username != ?'); 207 $this->assertEquals('DELETE FROM cms_user cu WHERE cu.id BETWEEN ? AND ? AND cu.username <> ?', $q->getSql()); 208 $q->free(); 186 $this->assertSqlGeneration( 187 "DELETE CmsUser u WHERE u.id NOT BETWEEN ? AND ?", 188 "DELETE FROM cms_user cu WHERE cu.id NOT BETWEEN ? AND ?" 189 ); 190 191 $this->assertSqlGeneration( 192 "DELETE CmsUser u WHERE u.id BETWEEN ? AND ? AND u.username != ?", 193 "DELETE FROM cms_user cu WHERE cu.id BETWEEN ? AND ? AND cu.username <> ?" 194 ); 209 195 } 210 196 … … 212 198 public function testWithExprAndLike() 213 199 { 214 $q = new Doctrine_Query();215 216 200 // "WHERE" Expression LikeExpression 217 $q->setDql('DELETE CmsUser u WHERE u.username NOT LIKE ?'); 218 $this->assertEquals('DELETE FROM cms_user cu WHERE cu.username NOT LIKE ?', $q->getSql()); 219 $q->free(); 220 221 $q->setDql("DELETE CmsUser u WHERE u.username LIKE ? ESCAPE '\\'"); 222 $this->assertEquals("DELETE FROM cms_user cu WHERE cu.username LIKE ? ESCAPE '\\'", $q->getSql()); 223 $q->free(); 201 $this->assertSqlGeneration( 202 'DELETE CmsUser u WHERE u.username NOT LIKE ?', 203 'DELETE FROM cms_user cu WHERE cu.username NOT LIKE ?' 204 ); 205 206 $this->assertSqlGeneration( 207 "DELETE CmsUser u WHERE u.username LIKE ? ESCAPE '\\'", 208 "DELETE FROM cms_user cu WHERE cu.username LIKE ? ESCAPE '\\'" 209 ); 224 210 } 225 211 … … 227 213 public function testWithExprAndIn() 228 214 { 229 $q = new Doctrine_Query();230 231 215 // "WHERE" Expression InExpression 232 $q->setDql('DELETE CmsUser u WHERE u.id IN ( ?, ?, ?, ? )'); 233 $this->assertEquals('DELETE FROM cms_user cu WHERE cu.id IN (?, ?, ?, ?)', $q->getSql()); 234 $q->free(); 235 236 $q->setDql('DELETE CmsUser u WHERE u.id NOT IN ( ?, ? )'); 237 $this->assertEquals('DELETE FROM cms_user cu WHERE cu.id NOT IN (?, ?)', $q->getSql()); 238 $q->free(); 216 $this->assertSqlGeneration( 217 'DELETE CmsUser u WHERE u.id IN ( ?, ?, ?, ? )', 218 'DELETE FROM cms_user cu WHERE cu.id IN (?, ?, ?, ?)' 219 ); 220 221 $this->assertSqlGeneration( 222 'DELETE CmsUser u WHERE u.id NOT IN ( ?, ? )', 223 'DELETE FROM cms_user cu WHERE cu.id NOT IN (?, ?)' 224 ); 239 225 } 240 226 … … 242 228 public function testWithExprAndNull() 243 229 { 244 $q = new Doctrine_Query();245 246 230 // "WHERE" Expression NullComparisonExpression 247 $q->setDql('DELETE CmsUser u WHERE u.name IS NULL'); 248 $this->assertEquals('DELETE FROM cms_user cu WHERE cu.name IS NULL', $q->getSql()); 249 $q->free(); 250 251 $q->setDql('DELETE CmsUser u WHERE u.name IS NOT NULL'); 252 $this->assertEquals('DELETE FROM cms_user cu WHERE cu.name IS NOT NULL', $q->getSql()); 253 $q->free(); 231 $this->assertSqlGeneration( 232 'DELETE CmsUser u WHERE u.name IS NULL', 233 'DELETE FROM cms_user cu WHERE cu.name IS NULL' 234 ); 235 236 $this->assertSqlGeneration( 237 'DELETE CmsUser u WHERE u.name IS NOT NULL', 238 'DELETE FROM cms_user cu WHERE cu.name IS NOT NULL' 239 ); 254 240 } 255 241 … … 259 245 public function testWithPrimaryAsAtom() 260 246 { 261 $q = new Doctrine_Query();262 263 247 // Atom = string | integer | float | boolean | input_parameter 264 $q->setDql('DELETE CmsUser u WHERE 1 = 1'); 265 $this->assertEquals('DELETE FROM cms_user cu WHERE 1 = 1', $q->getSql()); 266 $q->free(); 267 268 $q->setDql('DELETE CmsUser u WHERE ? = 1'); 269 $this->assertEquals('DELETE FROM cms_user cu WHERE ? = 1', $q->getSql()); 270 $q->free(); 248 $this->assertSqlGeneration( 249 'DELETE CmsUser u WHERE 1 = 1', 250 'DELETE FROM cms_user cu WHERE 1 = 1' 251 ); 252 253 $this->assertSqlGeneration( 254 'DELETE CmsUser u WHERE ? = 1', 255 'DELETE FROM cms_user cu WHERE ? = 1' 256 ); 271 257 } 272 258 } -
trunk/tests/Orm/Query/DqlGenerationTest.php
r4422 r4452 35 35 class Orm_Query_DqlGenerationTest extends Doctrine_OrmTestCase 36 36 { 37 const QueryClass = 'Doctrine_Query'; 37 protected function createQuery() 38 { 39 $entityManager = Doctrine_EntityManager::getManager(); 40 return $entityManager->createQuery(); 41 } 42 38 43 39 44 public function testSelect() 40 45 { 41 $class = self::QueryClass; 42 $q = new $class(); 46 $query = $this->createQuery(); 43 47 44 48 // select and from 45 $q ->setDql('FROM User u');46 $this->assertEquals('FROM User u', $q ->getDql()); // Internally we use SELECT * FROM User u to process the DQL47 $q ->free();48 49 $q ->select()->from('User u');50 $this->assertEquals('SELECT * FROM User u', $q ->getDql());51 $q ->free();52 53 $q ->select('u.*')->from('User u');54 $this->assertEquals('SELECT u.* FROM User u', $q ->getDql());55 $q ->free();56 57 $q ->select('u.id')->from('User u');58 $this->assertEquals('SELECT u.id FROM User u', $q ->getDql());59 $q ->free();60 61 $q ->select('u.id, u.name')->from('User u');62 $this->assertEquals('SELECT u.id, u.name FROM User u', $q ->getDql());63 $q ->free();64 65 $q ->select('u.name AS myCustomName')->from('User u');66 $this->assertEquals('SELECT u.name AS myCustomName FROM User u', $q ->getDql());67 $q ->free();68 69 $q ->select('u.id')->select('u.name')->from('User u');70 $this->assertEquals('SELECT u.id, u.name FROM User u', $q ->getDql());71 $q ->free();49 $query->setDql('FROM User u'); 50 $this->assertEquals('FROM User u', $query->getDql()); // Internally we use SELECT * FROM User u to process the DQL 51 $query->free(); 52 53 $query->select()->from('User u'); 54 $this->assertEquals('SELECT * FROM User u', $query->getDql()); 55 $query->free(); 56 57 $query->select('u.*')->from('User u'); 58 $this->assertEquals('SELECT u.* FROM User u', $query->getDql()); 59 $query->free(); 60 61 $query->select('u.id')->from('User u'); 62 $this->assertEquals('SELECT u.id FROM User u', $query->getDql()); 63 $query->free(); 64 65 $query->select('u.id, u.name')->from('User u'); 66 $this->assertEquals('SELECT u.id, u.name FROM User u', $query->getDql()); 67 $query->free(); 68 69 $query->select('u.name AS myCustomName')->from('User u'); 70 $this->assertEquals('SELECT u.name AS myCustomName FROM User u', $query->getDql()); 71 $query->free(); 72 73 $query->select('u.id')->select('u.name')->from('User u'); 74 $this->assertEquals('SELECT u.id, u.name FROM User u', $query->getDql()); 75 $query->free(); 72 76 } 73 77 … … 75 79 public function testSelectDistinct() 76 80 { 77 $class = self::QueryClass; 78 $q = new $class(); 79 80 $q->select()->distinct()->from('User u'); 81 $this->assertEquals('SELECT DISTINCT * FROM User u', $q->getDql()); 82 $q->free(); 83 84 $q->select('u.name')->distinct(false)->from('User u'); 85 $this->assertEquals('SELECT u.name FROM User u', $q->getDql()); 86 $q->free(); 87 88 $q->select()->distinct(false)->from('User u'); 89 $this->assertEquals('SELECT * FROM User u', $q->getDql()); 90 $q->free(); 91 92 $q->select('u.name')->distinct()->from('User u'); 93 $this->assertEquals('SELECT DISTINCT u.name FROM User u', $q->getDql()); 94 $q->free(); 95 96 $q->select('u.name, u.email')->distinct()->from('User u'); 97 $this->assertEquals('SELECT DISTINCT u.name, u.email FROM User u', $q->getDql()); 98 $q->free(); 99 100 $q->select('u.name')->select('u.email')->distinct()->from('User u'); 101 $this->assertEquals('SELECT DISTINCT u.name, u.email FROM User u', $q->getDql()); 102 $q->free(); 103 104 $q->select('DISTINCT u.name')->from('User u'); 105 $this->assertEquals('SELECT DISTINCT u.name FROM User u', $q->getDql()); 106 $q->free(); 107 108 $q->select('DISTINCT u.name, u.email')->from('User u'); 109 $this->assertEquals('SELECT DISTINCT u.name, u.email FROM User u', $q->getDql()); 110 $q->free(); 111 112 $q->select('DISTINCT u.name')->select('u.email')->from('User u'); 113 $this->assertEquals('SELECT DISTINCT u.name, u.email FROM User u', $q->getDql()); 114 $q->free(); 81 $query = $this->createQuery(); 82 83 $query->select()->distinct()->from('User u'); 84 $this->assertEquals('SELECT DISTINCT * FROM User u', $query->getDql()); 85 $query->free(); 86 87 $query->select('u.name')->distinct(false)->from('User u'); 88 $this->assertEquals('SELECT u.name FROM User u', $query->getDql()); 89 $query->free(); 90 91 $query->select()->distinct(false)->from('User u'); 92 $this->assertEquals('SELECT * FROM User u', $query->getDql()); 93 $query->free(); 94 95 $query->select('u.name')->distinct()->from('User u'); 96 $this->assertEquals('SELECT DISTINCT u.name FROM User u', $query->getDql()); 97 $query->free(); 98 99 $query->select('u.name, u.email')->distinct()->from('User u'); 100 $this->assertEquals('SELECT DISTINCT u.name, u.email FROM User u', $query->getDql()); 101 $query->free(); 102 103 $query->select('u.name')->select('u.email')->distinct()->from('User u'); 104 $this->assertEquals('SELECT DISTINCT u.name, u.email FROM User u', $query->getDql()); 105 $query->free(); 106 107 $query->select('DISTINCT u.name')->from('User u'); 108 $this->assertEquals('SELECT DISTINCT u.name FROM User u', $query->getDql()); 109 $query->free(); 110 111 $query->select('DISTINCT u.name, u.email')->from('User u'); 112 $this->assertEquals('SELECT DISTINCT u.name, u.email FROM User u', $query->getDql()); 113 $query->free(); 114 115 $query->select('DISTINCT u.name')->select('u.email')->from('User u'); 116 $this->assertEquals('SELECT DISTINCT u.name, u.email FROM User u', $query->getDql()); 117 $query->free(); 115 118 } 116 119 … … 118 121 public function testSelectJoin() 119 122 { 120 $class = self::QueryClass; 121 $q = new $class(); 122 123 $q->select('u.*')->from('User u')->join('u.Group g')->where('g.id = ?', 1); 124 $this->assertEquals('SELECT u.* FROM User u INNER JOIN u.Group g WHERE g.id = ?', $q->getDql()); 125 $this->assertEquals(array(1), $q->getParams()); 126 $q->free(); 127 128 $q->select('u.*')->from('User u')->innerJoin('u.Group g')->where('g.id = ?', 1); 129 $this->assertEquals('SELECT u.* FROM User u INNER JOIN u.Group g WHERE g.id = ?', $q->getDql()); 130 $this->assertEquals(array(1), $q->getParams()); 131 $q->free(); 132 133 $q->select('u.*')->from('User u')->leftJoin('u.Group g')->where('g.id IS NULL'); 134 $this->assertEquals('SELECT u.* FROM User u LEFT JOIN u.Group g WHERE g.id IS NULL', $q->getDql()); 135 $q->free(); 136 137 $q->select('u.*')->from('User u')->leftJoin('u.UserGroup ug')->leftJoin('ug.Group g')->where('g.name = ?', 'admin'); 138 $this->assertEquals('SELECT u.* FROM User u LEFT JOIN u.UserGroup ug LEFT JOIN ug.Group g WHERE g.name = ?', $q->getDql()); 139 $q->free(); 123 $query = $this->createQuery(); 124 125 $query->select('u.*')->from('User u')->join('u.Group g')->where('g.id = ?', 1); 126 $this->assertEquals('SELECT u.* FROM User u INNER JOIN u.Group g WHERE g.id = ?', $query->getDql()); 127 $this->assertEquals(array(1), $query->getParams()); 128 $query->free(); 129 130 $query->select('u.*')->from('User u')->innerJoin('u.Group g')->where('g.id = ?', 1); 131 $this->assertEquals('SELECT u.* FROM User u INNER JOIN u.Group g WHERE g.id = ?', $query->getDql()); 132 $this->assertEquals(array(1), $query->getParams()); 133 $query->free(); 134 135 $query->select('u.*')->from('User u')->leftJoin('u.Group g')->where('g.id IS NULL'); 136 $this->assertEquals('SELECT u.* FROM User u LEFT JOIN u.Group g WHERE g.id IS NULL', $query->getDql()); 137 $query->free(); 138 139 $query->select('u.*')->from('User u')->leftJoin('u.UserGroup ug')->leftJoin('ug.Group g')->where('g.name = ?', 'admin'); 140 $this->assertEquals('SELECT u.* FROM User u LEFT JOIN u.UserGroup ug LEFT JOIN ug.Group g WHERE g.name = ?', $query->getDql()); 141 $query->free(); 140 142 } 141 143 … … 143 145 public function testSelectWhere() 144 146 { 145 $class = self::QueryClass; 146 $q = new $class(); 147 148 $q->select('u.name')->from('User u')->where('u.id = ?', 1); 149 $this->assertEquals('SELECT u.name FROM User u WHERE u.id = ?', $q->getDql()); 150 $this->assertEquals(array(1), $q->getParams()); 151 $q->free(); 152 153 $q->select('u.name')->from('User u')->where('u.id = ? AND u.type != ?', array(1, 'admin')); 154 $this->assertEquals('SELECT u.name FROM User u WHERE u.id = ? AND u.type != ?', $q->getDql()); 155 $this->assertEquals(array(1, 'admin'), $q->getParams()); 156 $q->free(); 157 158 $q->select('u.name')->from('User u')->where('u.id = ?', 1)->andWhere('u.type != ?', 'admin'); 159 $this->assertEquals('SELECT u.name FROM User u WHERE u.id = ? AND u.type != ?', $q->getDql()); 160 $this->assertEquals(array(1, 'admin'), $q->getParams()); 161 $q->free(); 162 163 $q->select('u.name')->from('User u')->where('( u.id = ?', 1)->andWhere('u.type != ? )', 'admin'); 164 $this->assertEquals('SELECT u.name FROM User u WHERE ( u.id = ? AND u.type != ? )', $q->getDql()); 165 $this->assertEquals(array(1, 'admin'), $q->getParams()); 166 $q->free(); 167 168 $q->select('u.name')->from('User u')->where('u.id = ? OR u.type != ?', array(1, 'admin')); 169 $this->assertEquals('SELECT u.name FROM User u WHERE u.id = ? OR u.type != ?', $q->getDql()); 170 $this->assertEquals(array(1, 'admin'), $q->getParams()); 171 $q->free(); 172 173 $q->select('u.name')->from('User u')->where('u.id = ?', 1)->orWhere('u.type != ?', 'admin'); 174 $this->assertEquals('SELECT u.name FROM User u WHERE u.id = ? OR u.type != ?', $q->getDql()); 175 $this->assertEquals(array(1, 'admin'), $q->getParams()); 176 $q->free(); 177 178 $q->select('u.name')->from('User u')->andwhere('u.id = ?', 1)->andWhere('u.type != ?', 'admin')->orWhere('u.email = ?', 'admin@localhost'); 179 $this->assertEquals('SELECT u.name FROM User u WHERE u.id = ? AND u.type != ? OR u.email = ?', $q->getDql()); 180 $this->assertEquals(array(1, 'admin', 'admin@localhost'), $q->getParams()); 181 $q->free(); 147 $query = $this->createQuery(); 148 149 $query->select('u.name')->from('User u')->where('u.id = ?', 1); 150 $this->assertEquals('SELECT u.name FROM User u WHERE u.id = ?', $query->getDql()); 151 $this->assertEquals(array(1), $query->getParams()); 152 $query->free(); 153 154 $query->select('u.name')->from('User u')->where('u.id = ? AND u.type != ?', array(1, 'admin')); 155 $this->assertEquals('SELECT u.name FROM User u WHERE u.id = ? AND u.type != ?', $query->getDql()); 156 $this->assertEquals(array(1, 'admin'), $query->getParams()); 157 $query->free(); 158 159 $query->select('u.name')->from('User u')->where('u.id = ?', 1)->andWhere('u.type != ?', 'admin'); 160 $this->assertEquals('SELECT u.name FROM User u WHERE u.id = ? AND u.type != ?', $query->getDql()); 161 $this->assertEquals(array(1, 'admin'), $query->getParams()); 162 $query->free(); 163 164 $query->select('u.name')->from('User u')->where('( u.id = ?', 1)->andWhere('u.type != ? )', 'admin'); 165 $this->assertEquals('SELECT u.name FROM User u WHERE ( u.id = ? AND u.type != ? )', $query->getDql()); 166 $this->assertEquals(array(1, 'admin'), $query->getParams()); 167 $query->free(); 168 169 $query->select('u.name')->from('User u')->where('u.id = ? OR u.type != ?', array(1, 'admin')); 170 $this->assertEquals('SELECT u.name FROM User u WHERE u.id = ? OR u.type != ?', $query->getDql()); 171 $this->assertEquals(array(1, 'admin'), $query->getParams()); 172 $query->free(); 173 174 $query->select('u.name')->from('User u')->where('u.id = ?', 1)->orWhere('u.type != ?', 'admin'); 175 $this->assertEquals('SELECT u.name FROM User u WHERE u.id = ? OR u.type != ?', $query->getDql()); 176 $this->assertEquals(array(1, 'admin'), $query->getParams()); 177 $query->free(); 178 179 $query->select('u.name')->from('User u')->andwhere('u.id = ?', 1)->andWhere('u.type != ?', 'admin')->orWhere('u.email = ?', 'admin@localhost'); 180 $this->assertEquals('SELECT u.name FROM User u WHERE u.id = ? AND u.type != ? OR u.email = ?', $query->getDql()); 181 $this->assertEquals(array(1, 'admin', 'admin@localhost'), $query->getParams()); 182 $query->free(); 182 183 } 183 184 … … 185 186 public function testSelectWhereIn() 186 187 { 187 $class = self::QueryClass; 188 $q = new $class(); 189