1
0
mirror of synced 2024-12-16 16:16:04 +03:00
doctrine2/tests/Doctrine/Tests/ORM/Functional/Ticket/DDC1787Test.php
Aaron Muylaert 600af3e617 Add failing test for DDC-1787.
Using joined table inheritance, when persisting multiple new entities
that are subclasses of a baseclass that has the @Version attribute set,
only the last persisted entity will have it's version set.
2013-12-14 13:24:47 +01:00

64 lines
1.2 KiB
PHP

<?php
namespace Doctrine\Tests\ORM\Functional\Ticket;
require_once __DIR__ . '/../../../TestInit.php';
/**
* @group DDC-1787
*/
class DDC1787Test extends \Doctrine\Tests\OrmFunctionalTestCase
{
public function setUp()
{
parent::setUp();
$this->_schemaTool->createSchema(array(
$this->_em->getClassMetadata(__NAMESPACE__ . '\DDC1787Foo'),
$this->_em->getClassMetadata(__NAMESPACE__ . '\DDC1787Bar'),
));
}
public function testIssue()
{
$bar = new DDC1787Bar;
$bar2 = new DDC1787Bar;
$this->_em->persist($bar);
$this->_em->persist($bar2);
$this->_em->flush();
$this->assertSame(1, $bar->getVersion());
}
}
/**
* @Entity
* @InheritanceType("JOINED")
* @DiscriminatorColumn(name="discr", type="string")
* @DiscriminatorMap({"bar" = "DDC1787Bar"})
*/
class DDC1787Foo
{
/**
* @Id @Column(type="integer") @GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @Version @Column(type="integer")
*/
private $version;
public function getVersion()
{
return $this->version;
}
}
/**
* @Entity
*/
class DDC1787Bar extends DDC1787Foo
{
}