public function testCompanyContract()
 {
     $person = new \Doctrine\Tests\Models\Company\CompanyEmployee();
     $person->setName('Poor Sales Guy');
     $person->setDepartment('Sales');
     $person->setSalary(100);
     $this->_em->persist($person);
     for ($i = 0; $i < 33; $i++) {
         $fix = new \Doctrine\Tests\Models\Company\CompanyFixContract();
         $fix->setFixPrice(1000);
         $fix->setSalesPerson($person);
         $fix->markCompleted();
         $this->_em->persist($fix);
         $flex = new \Doctrine\Tests\Models\Company\CompanyFlexContract();
         $flex->setSalesPerson($person);
         $flex->setHoursWorked(100);
         $flex->setPricePerHour(100);
         $flex->markCompleted();
         $this->_em->persist($flex);
         $ultra = new \Doctrine\Tests\Models\Company\CompanyFlexUltraContract();
         $ultra->setSalesPerson($person);
         $ultra->setHoursWorked(150);
         $ultra->setPricePerHour(150);
         $ultra->setMaxPrice(7000);
         $this->_em->persist($ultra);
     }
     $this->_em->flush();
     $this->_em->clear();
     $start = microtime(true);
     $contracts = $this->_em->getRepository('Doctrine\\Tests\\Models\\Company\\CompanyContract')->findAll();
     echo "99 CompanyContract: " . number_format(microtime(true) - $start, 6) . "\n";
     $this->assertEquals(99, count($contracts));
     $this->_em->clear();
     $start = microtime(true);
     $contracts = $this->_em->getRepository('Doctrine\\Tests\\Models\\Company\\CompanyContract')->findAll();
     echo "99 CompanyContract: " . number_format(microtime(true) - $start, 6) . "\n";
     $this->assertEquals(99, count($contracts));
 }
 public function testPersistDeepChildOfBaseClass()
 {
     $this->persistRelatedEmployees();
     $ultraContract = new \Doctrine\Tests\Models\Company\CompanyFlexUltraContract();
     $ultraContract->setSalesPerson($this->salesPerson);
     $ultraContract->setHoursWorked(100);
     $ultraContract->setPricePerHour(50);
     $ultraContract->setMaxPrice(7000);
     $this->_em->persist($ultraContract);
     $this->_em->flush();
     $this->_em->clear();
     $contract = $this->_em->find('Doctrine\\Tests\\Models\\Company\\CompanyFlexUltraContract', $ultraContract->getId());
     $this->assertInstanceOf('Doctrine\\Tests\\Models\\Company\\CompanyFlexUltraContract', $contract);
     $this->assertEquals(7000, $contract->getMaxPrice());
     $this->assertEquals(100, $contract->getHoursWorked());
     $this->assertEquals(50, $contract->getPricePerHour());
 }