Changeset 4431 for trunk/tests/Orm
- Timestamp:
- 05/24/08 23:04:14 (8 months ago)
- Location:
- trunk/tests/Orm/Query
- Files:
-
- 2 modified
-
DeleteSqlGenerationTest.php (modified) (1 diff)
-
LanguageRecognitionTest.php (modified) (11 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/tests/Orm/Query/DeleteSqlGenerationTest.php
r4422 r4431 103 103 $q->getSql(); 104 104 $this->fail("Invalid DQL '$invalidDql' was not rejected."); 105 } catch (Doctrine_Query_Parser_Exception $parseEx) {} 106 107 $invalidDql = 'DELETE FROM hey.boy'; 105 } catch (Doctrine_Exception $parseEx) {} 106 $q->free(); 107 108 $invalidDql = 'DELETE FROM CmsUser.articles'; 108 109 $q->setDql($invalidDql); 109 110 try { 110 111 $q->getSql(); 111 112 $this->fail("Invalid DQL '$invalidDql' was not rejected."); 112 } catch (Doctrine_Query_Parser_Exception $parseEx) {} 113 114 $invalidDql = 'DELETE FROM CmsUser cu WHERE cu.my.thing > ?'; 113 } catch (Doctrine_Exception $parseEx) {} 114 $q->free(); 115 116 $invalidDql = 'DELETE FROM CmsUser cu WHERE cu.articles.id > ?'; 115 117 $q->setDql($invalidDql); 116 118 try { 117 119 $q->getSql(); 118 120 $this->fail("Invalid DQL '$invalidDql' was not rejected."); 119 } catch (Doctrine_ Relation_Exception $parseEx) {}120 121 } catch (Doctrine_Exception $parseEx) {} 122 $q->free(); 121 123 } 122 124 -
trunk/tests/Orm/Query/LanguageRecognitionTest.php
r4425 r4431 1 1 <?php 2 3 /* 4 * $Id$ 5 * 6 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 7 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 8 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 9 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 10 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 11 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 12 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 13 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 14 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 15 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 16 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 17 * 18 * This software consists of voluntary contributions made by many individuals 19 * and is licensed under the LGPL. For more information, see 20 * <http://www.phpdoctrine.org>. 21 */ 22 require_once 'lib/DoctrineTestInit.php'; 23 /** 24 * Test case for testing the saving and referencing of query identifiers. 25 * 26 * @package Doctrine 27 * @subpackage Query 28 * @author Guilherme Blanco <guilhermeblanco@hotmail.com> 29 * @author Janne Vanhala <jpvanhal@cc.hut.fi> 30 * @author Konsta Vesterinen <kvesteri@cc.hut.fi> 31 * @license http://www.opensource.org/licenses/lgpl-license.php LGPL 32 * @link http://www.phpdoctrine.org 33 * @since 1.0 34 * @version $Revision$ 35 * @todo 1) [romanb] We might want to split the SQL generation tests into multiple 36 * testcases later since we'll have a lot of them and we might want to have special SQL 37 * generation tests for some dbms specific SQL syntaxes. 38 */ 2 39 class Orm_Query_LanguageRecognitionTest extends Doctrine_OrmTestCase 3 40 { … … 48 85 public function testInvalidSelectSingleComponentWithAsterisk() 49 86 { 50 $this->assert ValidDql('SELECT p.* FROM CmsUser u');87 $this->assertInvalidDql('SELECT p.* FROM CmsUser u'); 51 88 } 52 89 … … 98 135 public function testExistsExpressionSupportedInWherePart() 99 136 { 100 $this->assertValidDql('SELECT * FROM CmsUser u WHERE EXISTS (SELECT p.user_id FROM CmsPhonenumber p WHERE p.user_id = u.id)');137 $this->assertValidDql('SELECT u.* FROM CmsUser u WHERE EXISTS (SELECT p.user_id FROM CmsPhonenumber p WHERE p.user_id = u.id)'); 101 138 } 102 139 103 140 public function testNotExistsExpressionSupportedInWherePart() 104 141 { 105 $this->assertValidDql('SELECT * FROM CmsUser u WHERE NOT EXISTS (SELECT p.user_id FROM CmsPhonenumber p WHERE p.user_id = u.id)');142 $this->assertValidDql('SELECT u.* FROM CmsUser u WHERE NOT EXISTS (SELECT p.user_id FROM CmsPhonenumber p WHERE p.user_id = u.id)'); 106 143 } 107 144 … … 148 185 } 149 186 */ 187 150 188 public function testAdditionExpression() 151 189 { … … 191 229 public function testLeftJoin() 192 230 { 193 $this->assertValidDql('SELECT * FROM CmsUser u LEFT JOIN u.phonenumbers');231 $this->assertValidDql('SELECT u.*, p.* FROM CmsUser u LEFT JOIN u.phonenumbers p'); 194 232 } 195 233 … … 201 239 public function testInnerJoin() 202 240 { 203 $this->assertValidDql('SELECT * FROM CmsUser u INNER JOIN u.phonenumbers');241 $this->assertValidDql('SELECT u.*, u.phonenumbers.* FROM CmsUser u INNER JOIN u.phonenumbers'); 204 242 } 205 243 206 244 public function testMultipleLeftJoin() 207 245 { 208 $this->assertValidDql('SELECT * FROM CmsUser u LEFT JOIN u.articles LEFT JOIN u.phonenumbers');246 $this->assertValidDql('SELECT u.articles.*, u.phonenumbers.* FROM CmsUser u LEFT JOIN u.articles LEFT JOIN u.phonenumbers'); 209 247 } 210 248 … … 223 261 $this->assertValidDql('SELECT u.name, a.topic, p.phonenumber FROM CmsUser u INNER JOIN u.articles a LEFT JOIN u.phonenumbers p'); 224 262 } 225 /* 263 226 264 public function testMixingOfJoins2() 227 265 { 228 $this->assert ValidDql('SELECT u.name, u.articles.topic, c.text FROM CmsUser u INNER JOIN u.articles.comments c');229 } 230 */ 266 $this->assertInvalidDql('SELECT u.name, u.articles.topic, c.text FROM CmsUser u INNER JOIN u.articles.comments c'); 267 } 268 231 269 public function testOrderBySingleColumn() 232 270 { … … 253 291 $this->assertValidDql('SELECT u.name FROM CmsUser u ORDER BY COALESCE(u.id, u.name) DESC'); 254 292 } 255 293 /* 256 294 public function testSubselectInInExpression() 257 295 { 258 296 $this->assertValidDql("SELECT * FROM CmsUser u WHERE u.id NOT IN (SELECT u2.id FROM CmsUser u2 WHERE u2.name = 'zYne')"); 259 297 } 260 /* 298 261 299 public function testSubselectInSelectPart() 262 300 { … … 281 319 } 282 320 */ 321 283 322 public function testJoinConditionsSupported() 284 323 { … … 293 332 public function testIndexBySupportsJoins() 294 333 { 295 $this->assertValidDql('SELECT * FROM CmsUser u LEFT JOIN u.articles INDEX BY id'); // INDEX BY is now referring to articles334 $this->assertValidDql('SELECT u.*, u.articles.* FROM CmsUser u LEFT JOIN u.articles INDEX BY id'); // INDEX BY is now referring to articles 296 335 } 297 336 298 337 public function testIndexBySupportsJoins2() 299 338 { 300 $this->assertValidDql('SELECT * FROM CmsUser u INDEX BY id LEFT JOIN u.phonenumbers p INDEX BY phonenumber');339 $this->assertValidDql('SELECT u.*, u.phonenumbers.* FROM CmsUser u INDEX BY id LEFT JOIN u.phonenumbers p INDEX BY phonenumber'); 301 340 } 302 341 … … 343 382 $this->assertValidDql("SELECT u.id FROM CmsUser u WHERE u.name LIKE 'z|%' ESCAPE '|'"); 344 383 } 384 345 385 }