123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- <?php
-
- namespace Doctrine\Tests\ORM\Functional;
-
- use Doctrine\ORM\Event\PreUpdateEventArgs;
-
- require_once __DIR__ . '/../../TestInit.php';
-
- class PostgreSQLIdentityStrategyTest extends \Doctrine\Tests\OrmFunctionalTestCase
- {
- protected function setUp() {
- parent::setUp();
- if ($this->_em->getConnection()->getDatabasePlatform()->getName() != 'postgresql') {
- $this->markTestSkipped('This test is special to the PostgreSQL IDENTITY key generation strategy.');
- } else {
- try {
- $this->_schemaTool->createSchema(array(
- $this->_em->getClassMetadata('Doctrine\Tests\ORM\Functional\PostgreSQLIdentityEntity'),
- ));
- } catch (\Exception $e) {
- // Swallow all exceptions. We do not test the schema tool here.
- }
- }
- }
-
- protected function tearDown() {
- parent::tearDown();
- // drop sequence manually due to dependency
- $this->_em->getConnection()->exec('DROP SEQUENCE postgresqlidentityentity_id_seq CASCADE');
- }
-
- public function testPreSavePostSaveCallbacksAreInvoked()
- {
- $entity = new PostgreSQLIdentityEntity();
- $entity->setValue('hello');
- $this->_em->persist($entity);
- $this->_em->flush();
- $this->assertTrue(is_numeric($entity->getId()));
- $this->assertTrue($entity->getId() > 0);
- $this->assertTrue($this->_em->contains($entity));
- }
- }
-
- /** @Entity */
- class PostgreSQLIdentityEntity {
- /** @Id @Column(type="integer") @GeneratedValue(strategy="IDENTITY") */
- private $id;
- /** @Column(type="string") */
- private $value;
- public function getId() {return $this->id;}
- public function getValue() {return $this->value;}
- public function setValue($value) {$this->value = $value;}
- }
|