1
0
mirror of synced 2025-02-02 21:41:45 +03:00

Add test for L2C using optimistic locks

As explained in #7067, fields with `@ORM\Version` annotation were not
being added to L2C cached data.
This commit is contained in:
‘Andrey Lukin’ 2018-02-16 11:33:20 +03:00 committed by Luís Cobucci
parent 496c6a9f03
commit 8fc1d74820
No known key found for this signature in database
GPG Key ID: EC61C5F01750ED3C

View File

@ -0,0 +1,69 @@
<?php
declare(strict_types=1);
namespace Doctrine\Tests\ORM\Functional\Ticket;
final class GH7067Test extends \Doctrine\Tests\OrmFunctionalTestCase
{
public function setUp() : void
{
$this->enableSecondLevelCache();
parent::setUp();
$this->setUpEntitySchema([GH7067Entity::class]);
}
/**
* @group 7067
*/
public function testSLCWithVersion() : void
{
$entity = new GH7067Entity();
$entity->lastUpdate = new \DateTime();
$this->_em->persist($entity);
$this->_em->flush();
$this->_em->clear();
/** @var GH7067Entity $notCached */
$notCached = $this->_em->find(GH7067Entity::class, $entity->id);
self::assertNotNull($notCached->version, 'Version already cached by persister above, it must be not null');
$notCached->lastUpdate = new \DateTime();
$this->_em->flush();
$this->_em->clear();
}
}
/**
* @Entity()
* @Cache(usage="NONSTRICT_READ_WRITE")
*/
class GH7067Entity
{
/**
* @Id
* @GeneratedValue
* @Column(type="integer")
*
* @var int
*/
public $id;
/**
* @Column(type="datetime")
*
* @var \DateTime
*/
public $lastUpdate;
/**
* @Column(type="datetime")
* @Version
*
* @var \DateTime
*/
public $version;
}