From 3d0e985eeb9c235ba862f3edef4f5bd32bfedb09 Mon Sep 17 00:00:00 2001 From: zYne Date: Wed, 13 Jun 2007 11:02:57 +0000 Subject: [PATCH] tests for multiple aggeragate values with array fetching --- .../Query/MultipleAggregateValueTestCase.php | 33 ++++++++++++++++--- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/tests/Query/MultipleAggregateValueTestCase.php b/tests/Query/MultipleAggregateValueTestCase.php index f94b4d701..e6ee85c93 100644 --- a/tests/Query/MultipleAggregateValueTestCase.php +++ b/tests/Query/MultipleAggregateValueTestCase.php @@ -20,19 +20,22 @@ */ /** - * %s + * Doctrine_Query_MultipleAggregateValue_TestCase * * @package Doctrine + * @author Konsta Vesterinen * @author Jonathan H. Wage * @license http://www.opensource.org/licenses/lgpl-license.php LGPL * @category Object Relational Mapping * @link www.phpdoctrine.com * @since 1.0 - * @version 1.0 + * @version $Revision$ */ class Doctrine_Query_MultipleAggregateValue_TestCase extends Doctrine_UnitTestCase { - public function setUp() + public function prepareData() + { } + public function testInitData() { $user = new User(); $user->name = 'jon'; @@ -68,4 +71,26 @@ class Doctrine_Query_MultipleAggregateValue_TestCase extends Doctrine_UnitTestCa $this->assertEqual($num_albums, 3); $this->assertEqual($num_books, 2); } -} \ No newline at end of file + public function testMultipleAggregateValuesWithArrayFetching() + { + $query = new Doctrine_Query(); + $query->select('u.*, COUNT(DISTINCT b.id) num_books, COUNT(DISTINCT a.id) num_albums'); + $query->from('User u'); + $query->leftJoin('u.Album a, u.Book b'); + $query->where("u.name = 'jon'"); + $query->limit(1); + + $users = $query->execute(array(), Doctrine::FETCH_ARRAY); + + try { + $name = $users[0]['name']; + $num_albums = $users[0]['Album'][0]['num_albums']; + $num_books = $users[0]['Book'][0]['num_books']; + } catch (Doctrine_Exception $e) { + $this->fail(); + } + + $this->assertEqual($num_albums, 3); + $this->assertEqual($num_books, 2); + } +}