1
0
mirror of synced 2024-12-14 07:06:04 +03:00

Added ticket 428 test case using Album model

Not using User model since users gets its table cleared before each
test method call ($this->objTable()->clear()), and that affects the
result
This commit is contained in:
jackbravo 2007-09-03 21:13:31 +00:00
parent 902d609fca
commit 8423421973
2 changed files with 53 additions and 0 deletions

View File

@ -0,0 +1,52 @@
<?php
/**
* Doctrine_Ticket_428_TestCase
*
* @package Doctrine
* @author Tamcy <7am.online@gmail.com>
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
* @category Object Relational Mapping
* @link www.phpdoctrine.com
* @since 1.0
* @version $Revision$
*/
class Doctrine_Ticket_428_TestCase extends Doctrine_UnitTestCase
{
public function prepareData()
{
}
public function testInitData()
{
// Since the tests do a $this->objTable()->clear() before each method call
// using the User model is not recommended for this test
$albums = new Doctrine_Collection('Album');
$albums[0]->name = 'Revolution';
$albums[0]->Song[0]->title = 'Revolution';
$albums[0]->Song[1]->title = 'Hey Jude';
$albums[0]->Song[2]->title = 'Across the Universe';
$albums[0]->Song[3]->title = 'Michelle';
$albums->save();
$this->assertEqual(count($albums[0]->Song), 4);
}
public function testAggregateValueMappingSupportsLeftJoins()
{
$q = new Doctrine_Query();
$q->select('a.name, COUNT(s.id) count')->from('Album a')->leftJoin('a.Song s')->groupby('a.id');
$albums = $q->execute();
// Should not reuse the existing collection in this case
$this->assertEqual(count($albums[0]->Song), 1);
try {
// Collection[0] should refer to the object with aggregate value
$this->assertEqual($albums[0]['Song'][0]['count'], 4);
} catch (Exception $e) {
$this->fail('count aggregate value should be available');
}
}
}

View File

@ -94,6 +94,7 @@ $test = new GroupTest('Doctrine Framework Unit Tests');
//TICKET test cases
$tickets = new GroupTest('Tickets tests');
$tickets->addTestCase(new Doctrine_Ticket_Njero_TestCase());
$tickets->addTestCase(new Doctrine_Ticket_428_TestCase());
//If you write a ticket testcase add it here like shown above!
$test->addTestCase($tickets);