From a28c399c1c65209c3ebdde2d173f9e1ee76996c3 Mon Sep 17 00:00:00 2001 From: zYne Date: Wed, 13 Jun 2007 20:59:05 +0000 Subject: [PATCH] Ticket 330 closed. --- tests/Ticket330TestCase.php | 128 +++++++++++++++++------------------- 1 file changed, 60 insertions(+), 68 deletions(-) diff --git a/tests/Ticket330TestCase.php b/tests/Ticket330TestCase.php index c7656ccf9..af1e48cdd 100644 --- a/tests/Ticket330TestCase.php +++ b/tests/Ticket330TestCase.php @@ -1,6 +1,6 @@ setTableName('node_node'); - - $this->hasColumn('title', 'string', 255, array ()); - } - - public function setUp() - { - $this->hasOne('stNodeDetail as detail', 'stNodeDetail.node_id' , array( 'onDelete'=>'cascade')); - } + public function setTableDefinition() + { + $this->setTableName('node_node'); + + $this->hasColumn('title', 'string', 255, array ()); + } + + public function setUp() + { + $this->hasOne('stNodeDetail as detail', 'stNodeDetail.node_id' , array( 'onDelete'=>'cascade')); + } } class stNodeDetail extends Doctrine_Record { - public function setTableDefinition() - { - $this->setTableName('node_detail'); - - $this->hasColumn('node_id', 'integer', 10, array ( 'unique' => true,)); - $this->hasColumn('null_column', 'string', 255, array ('default'=>null)); - $this->hasColumn('is_bool', 'boolean', null, array ('default' => 0,)); - $this->option('type', 'MyISAM'); - } + public function setTableDefinition() + { + $this->setTableName('node_detail'); + + $this->hasColumn('node_id', 'integer', 10, array ( 'unique' => true,)); + $this->hasColumn('null_column', 'string', 255, array ('default'=>null)); + $this->hasColumn('is_bool', 'boolean', null, array ('default' => 0,)); + $this->option('type', 'MyISAM'); + } - public function setUp() - { - $this->hasOne('stNode as node', 'stNodeDetail.article_id', array('foreign' => 'id' , 'onDelete'=>'cascade')); - } + public function setUp() + { + $this->hasOne('stNode as node', 'stNodeDetail.article_id', array('foreign' => 'id' , 'onDelete'=>'cascade')); + } } class Doctrine_Ticket330_TestCase extends Doctrine_UnitTestCase { - public function prepareData() + public function prepareData() { } public function prepareTables() @@ -57,47 +57,39 @@ class Doctrine_Ticket330_TestCase extends Doctrine_UnitTestCase public function testUnnecessaryQueries() { - - $node1 = new stNode(); - $node1->set('title', 'first node'); - $node1->detail->set('is_bool', true); - $node1->save(); - - $node2 = new stNode(); - $node2->set('title', 'second node'); - $node2->detail->set('null_column', 'value'); - $node2->detail->set('is_bool', false); - $node2->save(); - - $nodes = Doctrine_Query::create() - ->select('n.title, d.null_column, d.is_bool') - ->from('stNode n, n.detail d') - ->execute(); - - $prevCount = $this->dbh->count(); - - - foreach ( $nodes as $node ) - { - if ( $node->get('title') == 'first node') - { - $this->assertEqual($node->detail->get('is_bool'), true); - $this->assertEqual($node->detail->get('null_column'), null); - // Unnecessary query is triggered on line before due to null value column. - $this->assertEqual($this->dbh->count(), $prevCount); - - $prevCount = $this->dbh->count(); - } - else - { - $this->assertEqual($node->detail->get('null_column'), 'value'); - $this->assertEqual($node->detail->get('is_bool'), false); - // Unecessary query is triggered on line before due to false value column - $this->assertEqual($this->dbh->count(), $prevCount); - } - } - - $this->assertEqual($this->dbh->count(), $prevCount); - + + $node1 = new stNode(); + $node1->set('title', 'first node'); + $node1->detail->set('is_bool', true); + $node1->save(); + + $node2 = new stNode(); + $node2->set('title', 'second node'); + $node2->detail->set('null_column', 'value'); + $node2->detail->set('is_bool', false); + $node2->save(); + + $nodes = Doctrine_Query::create() + ->select('n.title, d.*') + ->from('stNode n, n.detail d') + ->orderby('n.id') + ->execute(); + + $prevCount = $this->dbh->count(); + + + $this->assertEqual($nodes[0]->detail->get('is_bool'), true); + $this->assertEqual($nodes[0]->detail->get('null_column'), null); + + // Unnecessary query is triggered on line before due to null value column. + $this->assertEqual($this->dbh->count(), $prevCount); + + $prevCount = $this->dbh->count(); + + $this->assertEqual($nodes[1]->detail->get('null_column'), 'value'); + $this->assertEqual($nodes[1]->detail->get('is_bool'), false); + + // Unecessary query is triggered on line before due to false value column + $this->assertEqual($this->dbh->count(), $prevCount); } }