Ignore:
Timestamp:
15.11.2006 19:27:13 (4 years ago)
Author:
hans
Message:
  • ticket:280 - Added object pool registration in the save() method
  • Updated tests for instance pool to reflect new behavior
  • Added tests for inheritance
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/1.3/generator/test/classes/propel/GeneratedPeerTest.php

    r483 r491  
    342342                        } 
    343343                } 
    344  
     344                 
     345                 
     346                // 5) test creating a new object, saving it, and then retrieving that object (should all be same instance) 
     347                $b = new BookstoreEmployee(); 
     348                $b->setName("Testing"); 
     349                $b->setJobTitle("Testing"); 
     350                $b->save(); 
     351                 
     352                $empId = $b->getId(); 
     353                 
     354                $this->assertSame($b, BookstoreEmployeePeer::retrieveByPK($empId), "Expected newly saved object to be same instance as pooled."); 
     355 
     356        } 
     357         
     358        /** 
     359         * Test inheritance features. 
     360         */ 
     361        public function testInheritance() 
     362        { 
     363                $manager = new BookstoreManager(); 
     364                $manager->setName("Manager 1"); 
     365                $manager->setJobTitle("Warehouse Manager"); 
     366                $manager->save(); 
     367                $managerId = $manager->getId(); 
     368                 
     369                $employee = new BookstoreEmployee(); 
     370                $employee->setName("Employee 1"); 
     371                $employee->setJobTitle("Janitor"); 
     372                $employee->setSupervisorId($managerId); 
     373                $employee->save(); 
     374                $empId = $employee->getId(); 
     375                 
     376                $cashier = new BookstoreCashier(); 
     377                $cashier->setName("Cashier 1"); 
     378                $cashier->setJobTitle("Cashier"); 
     379                $cashier->save(); 
     380                $cashierId = $cashier->getId(); 
     381                 
     382                // 1) test the pooled instances' 
     383                $c = new Criteria(); 
     384                $c->add(BookstoreEmployeePeer::ID, array($managerId, $empId, $cashierId), Criteria::IN); 
     385                $c->addAscendingOrderByColumn(BookstoreEmployeePeer::ID); 
     386                 
     387                $objects = BookstoreEmployeePeer::doSelect($c); 
     388                 
     389                $this->assertEquals(3, count($objects), "Expected 3 objects to be returned."); 
     390                 
     391                list($o1, $o2, $o3) = $objects; 
     392                         
     393                $this->assertSame($o1, $manager); 
     394                $this->assertSame($o2, $employee); 
     395                $this->assertSame($o3, $cashier); 
     396                 
     397                // 2) test a forced reload from database 
     398                BookstoreEmployeePeer::clearInstancePool(); 
     399                 
     400                list($o1,$o2,$o3) = BookstoreEmployeePeer::doSelect($c); 
     401                 
     402                $this->assertTrue($o1 instanceof BookstoreManager, "Expected BookstoreManager object, got " . get_class($o1)); 
     403                $this->assertTrue($o2 instanceof BookstoreEmployee, "Expected BookstoreEmployee object, got " . get_class($o2)); 
     404                $this->assertTrue($o3 instanceof BookstoreCashier, "Expected BookstoreCashier object, got " . get_class($o3)); 
     405                 
    345406        } 
    346407} 
Note: See TracChangeset for help on using the changeset viewer.