1
0
mirror of synced 2024-12-14 23:26:04 +03:00
doctrine2/tests/Doctrine/Tests/ORM/Functional/Ticket/DDC960Test.php

92 lines
1.6 KiB
PHP

<?php
namespace Doctrine\Tests\ORM\Functional\Ticket;
use Doctrine\Common\Collections\ArrayCollection;
require_once __DIR__ . '/../../../TestInit.php';
class DDC960Test extends \Doctrine\Tests\OrmFunctionalTestCase
{
protected function setUp()
{
parent::setUp();
try {
$this->_schemaTool->createSchema(array(
$this->_em->getClassMetadata(__NAMESPACE__ . '\\DDC960Root'),
$this->_em->getClassMetadata(__NAMESPACE__ . '\\DDC960Child')
));
} catch(\Exception $e) {
}
}
/**
* @group DDC-960
*/
public function testUpdateRootVersion()
{
$child = new DDC960Child('Test');
$this->_em->persist($child);
$this->_em->flush();
$child->setName("Test2");
$this->_em->flush();
$this->assertEquals(2, $child->getVersion());
}
}
/**
* @Entity
* @InheritanceType("JOINED")
* @DiscriminatorMap({
* "root" = "DDC960Root",
* "child" = "DDC960Child"
* })
*/
class DDC960Root
{
/**
* @Id @GeneratedValue @Column(type="integer")
*/
private $id;
/**
* @Column(type="integer") @Version
*/
private $version;
public function getId()
{
return $this->id;
}
public function getVersion()
{
return $this->version;
}
}
/**
* @Entity
*/
class DDC960Child extends DDC960Root
{
/**
* @column(type="string")
* @var string
*/
private $name;
public function __construct($name)
{
$this->name = $name;
}
public function setName($name)
{
$this->name = $name;
}
}