From 415c2a95f2bb57ad370c99e11ce224d48c47327a Mon Sep 17 00:00:00 2001 From: "Fabio B. Silva" Date: Tue, 7 Aug 2012 21:31:01 -0300 Subject: [PATCH] php static driver --- .../Tests/Models/Company/CompanyContract.php | 40 +++++++++++++++++++ .../Models/Company/CompanyFixContract.php | 9 +++++ .../Models/Company/CompanyFlexContract.php | 15 +++++++ .../Company/CompanyFlexUltraContract.php | 23 +++++++++++ .../ORM/Mapping/AbstractMappingDriverTest.php | 8 +--- 5 files changed, 89 insertions(+), 6 deletions(-) diff --git a/tests/Doctrine/Tests/Models/Company/CompanyContract.php b/tests/Doctrine/Tests/Models/Company/CompanyContract.php index b218d8f86..4fd6d92d0 100644 --- a/tests/Doctrine/Tests/Models/Company/CompanyContract.php +++ b/tests/Doctrine/Tests/Models/Company/CompanyContract.php @@ -129,4 +129,44 @@ abstract class CompanyContract } abstract public function calculatePrice(); + + static public function loadMetadata(\Doctrine\ORM\Mapping\ClassMetadataInfo $metadata) + { + $metadata->setInheritanceType(\Doctrine\ORM\Mapping\ClassMetadata::INHERITANCE_TYPE_JOINED); + $metadata->setTableName( 'company_contracts'); + $metadata->setDiscriminatorColumn(array( + 'name' => 'discr', + 'type' => 'string', + )); + + $metadata->mapField(array( + 'id' => true, + 'name' => 'id', + 'fieldName' => 'id', + )); + + $metadata->mapField(array( + 'type' => 'boolean', + 'name' => 'completed', + 'fieldName' => 'completed', + )); + + $metadata->setDiscriminatorMap(array( + "fix" => "CompanyFixContract", + "flexible" => "CompanyFlexContract", + "flexultra" => "CompanyFlexUltraContract" + )); + + $metadata->addEntityListener(\Doctrine\ORM\Events::postPersist, 'ContractSubscriber', 'postPersistHandler'); + $metadata->addEntityListener(\Doctrine\ORM\Events::prePersist, 'ContractSubscriber', 'prePersistHandler'); + + $metadata->addEntityListener(\Doctrine\ORM\Events::postUpdate, 'ContractSubscriber', 'postUpdateHandler'); + $metadata->addEntityListener(\Doctrine\ORM\Events::preUpdate, 'ContractSubscriber', 'preUpdateHandler'); + + $metadata->addEntityListener(\Doctrine\ORM\Events::postRemove, 'ContractSubscriber', 'postRemoveHandler'); + $metadata->addEntityListener(\Doctrine\ORM\Events::preRemove, 'ContractSubscriber', 'preRemoveHandler'); + + $metadata->addEntityListener(\Doctrine\ORM\Events::preFlush, 'ContractSubscriber', 'preFlushHandler'); + $metadata->addEntityListener(\Doctrine\ORM\Events::postLoad, 'ContractSubscriber', 'postLoadHandler'); + } } diff --git a/tests/Doctrine/Tests/Models/Company/CompanyFixContract.php b/tests/Doctrine/Tests/Models/Company/CompanyFixContract.php index 9186fc3b1..87f3ce952 100644 --- a/tests/Doctrine/Tests/Models/Company/CompanyFixContract.php +++ b/tests/Doctrine/Tests/Models/Company/CompanyFixContract.php @@ -27,4 +27,13 @@ class CompanyFixContract extends CompanyContract { $this->fixPrice = $fixPrice; } + + static public function loadMetadata(\Doctrine\ORM\Mapping\ClassMetadataInfo $metadata) + { + $metadata->mapField(array( + 'type' => 'integer', + 'name' => 'fixPrice', + 'fieldName' => 'fixPrice', + )); + } } \ No newline at end of file diff --git a/tests/Doctrine/Tests/Models/Company/CompanyFlexContract.php b/tests/Doctrine/Tests/Models/Company/CompanyFlexContract.php index 121d8ec8e..86e6b330c 100644 --- a/tests/Doctrine/Tests/Models/Company/CompanyFlexContract.php +++ b/tests/Doctrine/Tests/Models/Company/CompanyFlexContract.php @@ -107,4 +107,19 @@ class CompanyFlexContract extends CompanyContract { $this->managers->removeElement($manager); } + + static public function loadMetadata(\Doctrine\ORM\Mapping\ClassMetadataInfo $metadata) + { + $metadata->mapField(array( + 'type' => 'integer', + 'name' => 'hoursWorked', + 'fieldName' => 'hoursWorked', + )); + + $metadata->mapField(array( + 'type' => 'integer', + 'name' => 'pricePerHour', + 'fieldName' => 'pricePerHour', + )); + } } diff --git a/tests/Doctrine/Tests/Models/Company/CompanyFlexUltraContract.php b/tests/Doctrine/Tests/Models/Company/CompanyFlexUltraContract.php index ce76821a6..d193d07d9 100644 --- a/tests/Doctrine/Tests/Models/Company/CompanyFlexUltraContract.php +++ b/tests/Doctrine/Tests/Models/Company/CompanyFlexUltraContract.php @@ -28,4 +28,27 @@ class CompanyFlexUltraContract extends CompanyFlexContract { $this->maxPrice = $maxPrice; } + + static public function loadMetadata(\Doctrine\ORM\Mapping\ClassMetadataInfo $metadata) + { + $metadata->mapField(array( + 'type' => 'integer', + 'name' => 'maxPrice', + 'fieldName' => 'maxPrice', + )); + $metadata->addEntityListener(\Doctrine\ORM\Events::postPersist, 'ContractSubscriber', 'postPersistHandler'); + $metadata->addEntityListener(\Doctrine\ORM\Events::prePersist, 'ContractSubscriber', 'prePersistHandler'); + + $metadata->addEntityListener(\Doctrine\ORM\Events::postUpdate, 'ContractSubscriber', 'postUpdateHandler'); + $metadata->addEntityListener(\Doctrine\ORM\Events::preUpdate, 'ContractSubscriber', 'preUpdateHandler'); + + $metadata->addEntityListener(\Doctrine\ORM\Events::postRemove, 'ContractSubscriber', 'postRemoveHandler'); + $metadata->addEntityListener(\Doctrine\ORM\Events::preRemove, 'ContractSubscriber', 'preRemoveHandler'); + + $metadata->addEntityListener(\Doctrine\ORM\Events::preFlush, 'ContractSubscriber', 'preFlushHandler'); + $metadata->addEntityListener(\Doctrine\ORM\Events::postLoad, 'ContractSubscriber', 'postLoadHandler'); + + $metadata->addEntityListener(\Doctrine\ORM\Events::prePersist, 'FlexUltraContractSubscriber', 'prePersistHandler1'); + $metadata->addEntityListener(\Doctrine\ORM\Events::prePersist, 'FlexUltraContractSubscriber', 'prePersistHandler2'); + } } \ No newline at end of file diff --git a/tests/Doctrine/Tests/ORM/Mapping/AbstractMappingDriverTest.php b/tests/Doctrine/Tests/ORM/Mapping/AbstractMappingDriverTest.php index a03434b58..c5fc1fba7 100644 --- a/tests/Doctrine/Tests/ORM/Mapping/AbstractMappingDriverTest.php +++ b/tests/Doctrine/Tests/ORM/Mapping/AbstractMappingDriverTest.php @@ -758,9 +758,7 @@ abstract class AbstractMappingDriverTest extends \Doctrine\Tests\OrmTestCase */ public function testEntityListeners() { - if ( ! ($this instanceof AnnotationDriverTest) - && ! ($this instanceof XmlMappingDriverTest) - && ! ($this instanceof YamlMappingDriverTest)) { + if ($this instanceof PHPMappingDriverTest) { $this->markTestIncomplete(); } @@ -818,9 +816,7 @@ abstract class AbstractMappingDriverTest extends \Doctrine\Tests\OrmTestCase */ public function testCallEntityListeners() { - if ( ! ($this instanceof AnnotationDriverTest) - && ! ($this instanceof XmlMappingDriverTest) - && ! ($this instanceof YamlMappingDriverTest)) { + if ($this instanceof PHPMappingDriverTest) { $this->markTestIncomplete(); }