diff --git a/tests/Query/MultipleAggregateValueTestCase.php b/tests/Query/MultipleAggregateValueTestCase.php new file mode 100644 index 000000000..4d5e275be --- /dev/null +++ b/tests/Query/MultipleAggregateValueTestCase.php @@ -0,0 +1,71 @@ +. + */ + +/** + * %s + * + * @package Doctrine + * @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 + */ +class Doctrine_Query_MultipleAggregateValue_TestCase extends Doctrine_UnitTestCase +{ + public function setUp() + { + $user = new User(); + $user->name = 'jon'; + + $user->Album[0] = new Album(); + $user->Album[1] = new Album(); + $user->Album[2] = new Album(); + + $user->Book[0] = new Book(); + $user->Book[1] = new Book(); + $user->save(); + } + + public function testMultipleAggregateValues() + { + $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); + + $user = $query->execute()->getFirst(); + + try { + $name = $user->name; + $num_albums = $user->Album[0]->num_albums; + $num_books = $user->Book[0]->num_books; + } catch(Doctrine_Exception $e) { + $this->fail(); + } + + $this->assertEqual($num_albums, 3); + $this->assertEqual($num_books, 2); + } +} \ No newline at end of file diff --git a/tests/run.php b/tests/run.php index eccc2ea57..bd8d72092 100644 --- a/tests/run.php +++ b/tests/run.php @@ -284,6 +284,8 @@ $test->addTestCase(new Doctrine_Query_Select_TestCase()); $test->addTestCase(new Doctrine_Query_JoinCondition_TestCase()); +$test->addTestCase(new Doctrine_Query_MultipleAggregateValue_TestCase()); + // Cache tests //$test->addTestCase(new Doctrine_Cache_Query_SqliteTestCase()); //$test->addTestCase(new Doctrine_Cache_FileTestCase());