Merge pull request #6569 from stoccc/patch-1
Added a test case for postLoad on fetch-joined entities - fetch joined entities should have lifecycle events fired as well
This commit is contained in:
commit
fb3ec7648d
@ -269,6 +269,47 @@ DQL;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* https://github.com/doctrine/doctrine2/issues/6568
|
||||||
|
*/
|
||||||
|
public function testPostLoadIsInvokedOnFetchJoinedEntities()
|
||||||
|
{
|
||||||
|
$entA = new LifecycleCallbackCascader();
|
||||||
|
$this->_em->persist($entA);
|
||||||
|
|
||||||
|
$entB_1 = new LifecycleCallbackTestEntity();
|
||||||
|
$entB_2 = new LifecycleCallbackTestEntity();
|
||||||
|
|
||||||
|
$entA->entities[] = $entB_1;
|
||||||
|
$entA->entities[] = $entB_2;
|
||||||
|
$entB_1->cascader = $entA;
|
||||||
|
$entB_2->cascader = $entA;
|
||||||
|
|
||||||
|
$this->_em->flush();
|
||||||
|
$this->_em->clear();
|
||||||
|
|
||||||
|
$dql = <<<'DQL'
|
||||||
|
SELECT
|
||||||
|
entA, entB
|
||||||
|
FROM
|
||||||
|
Doctrine\Tests\ORM\Functional\LifecycleCallbackCascader AS entA
|
||||||
|
LEFT JOIN
|
||||||
|
entA.entities AS entB
|
||||||
|
WHERE
|
||||||
|
entA.id = :entA_id
|
||||||
|
DQL;
|
||||||
|
|
||||||
|
$fetchedA = $this
|
||||||
|
->_em
|
||||||
|
->createQuery($dql)->setParameter('entA_id', $entA->getId())
|
||||||
|
->getOneOrNullResult();
|
||||||
|
|
||||||
|
$this->assertTrue($fetchedA->postLoadCallbackInvoked);
|
||||||
|
foreach ($fetchedA->entities as $fetchJoinedEntB) {
|
||||||
|
$this->assertTrue($fetchJoinedEntB->postLoadCallbackInvoked);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public function testLifecycleCallbacksGetInherited()
|
public function testLifecycleCallbacksGetInherited()
|
||||||
{
|
{
|
||||||
$childMeta = $this->_em->getClassMetadata(LifecycleCallbackChildEntity::class);
|
$childMeta = $this->_em->getClassMetadata(LifecycleCallbackChildEntity::class);
|
||||||
@ -455,6 +496,10 @@ class LifecycleCallbackCascader
|
|||||||
$this->postLoadCallbackInvoked = true;
|
$this->postLoadCallbackInvoked = true;
|
||||||
$this->postLoadEntitiesCount = count($this->entities);
|
$this->postLoadEntitiesCount = count($this->entities);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getId() {
|
||||||
|
return $this->id;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @MappedSuperclass @HasLifecycleCallbacks */
|
/** @MappedSuperclass @HasLifecycleCallbacks */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user