Rajout de doctrine/orm
[zf2.biz/galerie.git] / vendor / doctrine / orm / tests / Doctrine / Tests / ORM / Performance / InheritancePersisterPerformanceTest.php
1 <?php
2
3 namespace Doctrine\Tests\ORM\Performance;
4
5 use Doctrine\ORM\Tools\SchemaTool;
6 use Doctrine\ORM\Query;
7
8 require_once __DIR__ . '/../../TestInit.php';
9
10 /**
11 * @group performance
12  */
13 class InheritancePersisterPerformanceTest extends \Doctrine\Tests\OrmFunctionalTestCase
14 {
15     protected function setUp()
16     {
17         $this->useModelSet('company');
18         parent::setUp();
19     }
20
21     public function testCompanyContract()
22     {
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);
28
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);
35
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);
42
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);
49         }
50
51         $this->_em->flush();
52         $this->_em->clear();
53
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));
58
59         $this->_em->clear();
60
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));
65     }
66 }