/test/testsuite/generator/behavior/aggregate_column/AggregateColumnBehaviorWithSchemaTest.php
PHP | 81 lines | 53 code | 13 blank | 15 comment | 0 complexity | 4c08979c948584f6c586a2af0a3c393d MD5 | raw file
- <?php
- /*
- * $Id: SoftDeleteBehaviorTest.php 1612 2010-03-16 22:56:21Z francois $
- * This file is part of the Propel package.
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- *
- * @license MIT License
- */
- require_once dirname(__FILE__) . '/../../../../tools/helpers/schemas/SchemasTestBase.php';
- /**
- * Tests for AggregateColumnBehavior class
- *
- * @author François Zaninotto
- * @version $Revision: 2092 $
- * @package generator.behavior.aggregate_column
- */
- class AggregateColumnBehaviorWithSchemaTest extends SchemasTestBase
- {
- protected function setUp()
- {
- parent::setUp();
- $this->con = Propel::getConnection(BookstoreSchemasBookstorePeer::DATABASE_NAME);
- $this->con->beginTransaction();
- }
- protected function tearDown()
- {
- $this->con->commit();
- parent::tearDown();
- }
-
- public function testParametersWithSchema()
- {
- $storeTable = BookstoreSchemasBookstorePeer::getTableMap();
- $this->assertEquals(count($storeTable->getColumns()), 8, 'AggregateColumn adds one column by default');
- $this->assertTrue(method_exists('BookstoreSchemasBookstore', 'getTotalContestEntries'));
- }
- public function testComputeWithSchema()
- {
- ContestBookstoreContestEntryQuery::create()->deleteAll($this->con);
- BookstoreSchemasBookstoreQuery::create()->deleteAll($this->con);
- BookstoreSchemasCustomerQuery::create()->deleteAll($this->con);
- ContestBookstoreContestQuery::create()->deleteAll($this->con);
- $store = new BookstoreSchemasBookstore();
- $store->save($this->con);
- $this->assertEquals(0, $store->computeTotalContestEntries($this->con), 'The compute method returns 0 for objects with no related objects');
- $contest = new ContestBookstoreContest();
- $contest->setBookstoreSchemasBookstore($store);
- $contest->save($this->con);
- $customer1 = new BookstoreSchemasCustomer();
- $customer1->save($this->con);
- $entry1 = new ContestBookstoreContestEntry();
- $entry1->setBookstoreSchemasBookstore($store);
- $entry1->setContestBookstoreContest($contest);
- $entry1->setBookstoreSchemasCustomer($customer1);
- $entry1->save($this->con, true); // skip reload to avoid #1151 for now
- $this->assertEquals(1, $store->computeTotalContestEntries($this->con), 'The compute method computes the aggregate function on related objects');
- $customer2 = new BookstoreSchemasCustomer();
- $customer2->save($this->con);
- $entry2 = new ContestBookstoreContestEntry();
- $entry2->setBookstoreSchemasBookstore($store);
- $entry2->setContestBookstoreContest($contest);
- $entry2->setBookstoreSchemasCustomer($customer2);
- $entry2->save($this->con, true); // skip reload to avoid #1151 for now
- $this->assertEquals(2, $store->computeTotalContestEntries($this->con), 'The compute method computes the aggregate function on related objects');
- $entry1->delete($this->con);
- $this->assertEquals(1, $store->computeTotalContestEntries($this->con), 'The compute method computes the aggregate function on related objects');
- }
- }