From 61790d31cf6dfc310d46a75941bd5965de9cbda5 Mon Sep 17 00:00:00 2001 From: doctrine Date: Sun, 16 Apr 2006 22:46:05 +0000 Subject: [PATCH] immediate fetching bug fixed --- classes/Collection.class.php | 2 +- classes/DQL/Parser.class.php | 2 +- tests/DQLParserTestCase.class.php | 9 +++++---- tests/UnitTestCase.class.php | 2 +- tests/classes.php | 2 +- tests/run.php | 1 + 6 files changed, 10 insertions(+), 8 deletions(-) diff --git a/classes/Collection.class.php b/classes/Collection.class.php index 9e7bbc9aa..ace6e1a4a 100644 --- a/classes/Collection.class.php +++ b/classes/Collection.class.php @@ -26,7 +26,7 @@ class Doctrine_Collection extends Doctrine_Access implements Countable, Iterator */ protected $reference_field; /** - * @var Doctrine_Relation + * @var Doctrine_Relation the record this collection is related to, if any */ protected $relation; /** diff --git a/classes/DQL/Parser.class.php b/classes/DQL/Parser.class.php index 8df9c98e6..e9e10220c 100644 --- a/classes/DQL/Parser.class.php +++ b/classes/DQL/Parser.class.php @@ -714,7 +714,7 @@ class Doctrine_DQL_Parser { $b = array_shift($a); $b = array_shift($a); $graph = new Doctrine_DQL_Parser($this->session); - $graph->parseQuery("FROM $b WHERE $where"); + $graph->parseQuery("FROM $b-l WHERE $where"); $where = $this->tnames[$root]->getTableName().".id IN (SELECT ".$fk->getLocal()." FROM ".$asf->getTableName()." WHERE ".$fk->getForeign()." IN (".$graph->getQuery()."))"; break; endswitch; diff --git a/tests/DQLParserTestCase.class.php b/tests/DQLParserTestCase.class.php index e32c8ca00..4f8ae19d9 100644 --- a/tests/DQLParserTestCase.class.php +++ b/tests/DQLParserTestCase.class.php @@ -3,6 +3,8 @@ require_once("UnitTestCase.class.php"); class Doctrine_DQL_ParserTestCase extends Doctrine_UnitTestCase { public function testLimit() { + + $graph = new Doctrine_DQL_Parser($this->session); $coll = $graph->query("FROM User LIMIT 3"); $this->assertEqual($graph->getLimit(), 3); @@ -141,7 +143,7 @@ class Doctrine_DQL_ParserTestCase extends Doctrine_UnitTestCase { //$this->clearCache(); - $users = $graph->query("FROM User-b, User.Phonenumber"); + $users = $graph->query("FROM User-b, User.Phonenumber-b"); $this->assertEqual(trim($graph->getQuery()), "SELECT entity.id AS User__id, phonenumber.id AS Phonenumber__id FROM entity LEFT JOIN phonenumber ON entity.id = phonenumber.entity_id WHERE (entity.type = 0)"); @@ -157,13 +159,13 @@ class Doctrine_DQL_ParserTestCase extends Doctrine_UnitTestCase { - $users = $graph->query("FROM User-b, User.Email"); + $users = $graph->query("FROM User-b, User.Email-b"); $this->assertEqual(trim($graph->getQuery()), "SELECT entity.id AS User__id, email.id AS Email__id FROM entity, email WHERE (entity.email_id = email.id) AND (entity.type = 0)"); $this->assertEqual($users->count(),8); - $users = $graph->query("FROM Email WHERE Email.address LIKE '%@example%'"); + $users = $graph->query("FROM Email-b WHERE Email.address LIKE '%@example%'"); $this->assertEqual($graph->getQuery(), "SELECT email.id AS Email__id FROM email WHERE (email.address LIKE '%@example%')"); $this->assertEqual($users->count(),8); @@ -184,7 +186,6 @@ class Doctrine_DQL_ParserTestCase extends Doctrine_UnitTestCase { "SELECT entity.id AS User__id FROM entity LEFT JOIN phonenumber ON entity.id = phonenumber.entity_id WHERE (phonenumber.phonenumber REGEXP '[123]') AND (entity.type = 0)"); $this->assertEqual($users->count(),8); - $users = $graph->query("FROM User-b WHERE User.Group.name = 'Action Actors'"); $this->assertEqual(trim($graph->getQuery()), "SELECT entity.id AS User__id FROM entity WHERE (entity.id IN (SELECT user_id FROM groupuser WHERE group_id IN (SELECT entity.id AS Group__id FROM entity WHERE (entity.name = 'Action Actors') AND (entity.type = 1)))) AND (entity.type = 0)"); diff --git a/tests/UnitTestCase.class.php b/tests/UnitTestCase.class.php index 27cd53b9f..3a23ef67f 100644 --- a/tests/UnitTestCase.class.php +++ b/tests/UnitTestCase.class.php @@ -37,7 +37,7 @@ class Doctrine_UnitTestCase extends UnitTestCase { $this->manager = Doctrine_Manager::getInstance(); $this->manager->setAttribute(Doctrine::ATTR_CACHE, Doctrine::CACHE_NONE); - + $this->manager->setAttribute(Doctrine::ATTR_FETCHMODE, Doctrine::FETCH_IMMEDIATE); if($this->manager->count() > 0) { $this->session = $this->manager->getSession(0); $this->session->clear(); diff --git a/tests/classes.php b/tests/classes.php index 6c6f3769f..5fd690d08 100644 --- a/tests/classes.php +++ b/tests/classes.php @@ -3,7 +3,7 @@ class Entity extends Doctrine_Record { public function setUp() { $this->ownsOne("Email","Entity.email_id"); $this->ownsMany("Phonenumber","Phonenumber.entity_id"); - $this->setAttribute(Doctrine::ATTR_FETCHMODE,Doctrine::FETCH_BATCH); + } public function setTableDefinition() { $this->hasColumn("name","string",50); diff --git a/tests/run.php b/tests/run.php index 9bfee4513..ac275282c 100644 --- a/tests/run.php +++ b/tests/run.php @@ -47,6 +47,7 @@ $test->addTestCase(new Doctrine_DQL_ParserTestCase()); $test->addTestCase(new Doctrine_CollectionTestCase()); $test->addTestCase(new Doctrine_ConfigurableTestCase()); + $test->addTestCase(new Sensei_UnitTestCase());