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:
parent
496c6a9f03
commit
8fc1d74820
69
tests/Doctrine/Tests/ORM/Functional/Ticket/GH7067Test.php
Normal file
69
tests/Doctrine/Tests/ORM/Functional/Ticket/GH7067Test.php
Normal 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;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user