3 namespace Doctrine\Tests\ORM\Performance;
5 use Doctrine\ORM\Tools\SchemaTool;
6 use Doctrine\ORM\Query;
8 require_once __DIR__ . '/../../TestInit.php';
13 class InheritancePersisterPerformanceTest extends \Doctrine\Tests\OrmFunctionalTestCase
15 protected function setUp()
17 $this->useModelSet('company');
21 public function testCompanyContract()
23 $person = new \Doctrine\Tests\Models\Company\CompanyEmployee();
24 $person->setName('Poor Sales Guy');
25 $person->setDepartment('Sales');
26 $person->setSalary(100);
27 $this->_em->persist($person);
29 for ($i = 0; $i < 33; $i++) {
30 $fix = new \Doctrine\Tests\Models\Company\CompanyFixContract();
31 $fix->setFixPrice(1000);
32 $fix->setSalesPerson($person);
33 $fix->markCompleted();
34 $this->_em->persist($fix);
36 $flex = new \Doctrine\Tests\Models\Company\CompanyFlexContract();
37 $flex->setSalesPerson($person);
38 $flex->setHoursWorked(100);
39 $flex->setPricePerHour(100);
40 $flex->markCompleted();
41 $this->_em->persist($flex);
43 $ultra = new \Doctrine\Tests\Models\Company\CompanyFlexUltraContract();
44 $ultra->setSalesPerson($person);
45 $ultra->setHoursWorked(150);
46 $ultra->setPricePerHour(150);
47 $ultra->setMaxPrice(7000);
48 $this->_em->persist($ultra);
54 $start = microtime(true);
55 $contracts = $this->_em->getRepository('Doctrine\Tests\Models\Company\CompanyContract')->findAll();
56 echo "99 CompanyContract: " . number_format(microtime(true) - $start, 6) . "\n";
57 $this->assertEquals(99, count($contracts));
61 $start = microtime(true);
62 $contracts = $this->_em->getRepository('Doctrine\Tests\Models\Company\CompanyContract')->findAll();
63 echo "99 CompanyContract: " . number_format(microtime(true) - $start, 6) . "\n";
64 $this->assertEquals(99, count($contracts));