1
0
mirror of synced 2025-02-03 22:09:26 +03:00

90 lines
2.4 KiB
PHP
Raw Normal View History

2017-02-10 17:12:51 +01:00
<?php
namespace Doctrine\Tests\Functional\Ticket;
use Doctrine\Tests\OrmFunctionalTestCase;
final class GH6217Test extends OrmFunctionalTestCase
{
public function setUp()
{
$this->enableSecondLevelCache();
parent::setUp();
$this->_schemaTool->createSchema(
[
$this->_em->getClassMetadata(GH6217User::class),
$this->_em->getClassMetadata(GH6217Category::class),
$this->_em->getClassMetadata(GH6217UserProfile::class),
]
);
}
/**
* @group 6217
*/
public function testRetrievingCacheShouldNotThrowUndefinedIndexException()
{
$user = new GH6217User();
$category = new GH6217Category();
$userProfile = new GH6217UserProfile($user, $category);
2017-02-10 17:12:51 +01:00
$this->_em->persist($category);
$this->_em->persist($user);
$this->_em->persist($userProfile);
$this->_em->flush();
$this->_em->clear();
$repository = $this->_em->getRepository(GH6217UserProfile::class);
$filters = ['user' => $user->id, 'category' => $category->id];
2017-02-10 17:12:51 +01:00
$this->assertCount(1, $repository->findBy($filters));
$queryCount = $this->getCurrentQueryCount();
$this->_em->clear();
$this->assertCount(1, $repository->findBy($filters));
$this->assertEquals($queryCount, $this->getCurrentQueryCount());
}
}
/** @Entity @Cache(usage="NONSTRICT_READ_WRITE") */
2017-02-10 17:12:51 +01:00
class GH6217User
{
/** @Id @Column(type="string") @GeneratedValue(strategy="NONE") */
2017-02-10 17:12:51 +01:00
public $id;
public function __construct()
2017-02-10 17:12:51 +01:00
{
$this->id = uniqid(self::class, true);
2017-02-10 17:12:51 +01:00
}
}
/** @Entity @Cache(usage="NONSTRICT_READ_WRITE") */
2017-02-10 17:12:51 +01:00
class GH6217Category
{
/** @Id @Column(type="string") @GeneratedValue(strategy="NONE") */
2017-02-10 17:12:51 +01:00
public $id;
public function __construct()
2017-02-10 17:12:51 +01:00
{
$this->id = uniqid(self::class, true);
2017-02-10 17:12:51 +01:00
}
}
/** @Entity @Cache(usage="NONSTRICT_READ_WRITE") */
2017-02-10 17:12:51 +01:00
class GH6217UserProfile
{
/** @Id @Cache("NONSTRICT_READ_WRITE") @ManyToOne(targetEntity=GH6217User::class) */
2017-02-10 17:12:51 +01:00
public $user;
/** @Id @Cache("NONSTRICT_READ_WRITE") @ManyToOne(targetEntity=GH6217Category::class, fetch="EAGER") */
2017-02-10 17:12:51 +01:00
public $category;
public function __construct(GH6217User $user, GH6217Category $category)
2017-02-10 17:12:51 +01:00
{
$this->user = $user;
$this->category = $category;
}
}