parent
67724eb7ae
commit
e43f5304ef
@ -1,91 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Doctrine\Tests\ORM\Functional;
|
|
||||||
|
|
||||||
use Doctrine\ORM\Event\LifecycleEventArgs;
|
|
||||||
use Doctrine\Tests\Models\Company\CompanyContractListener;
|
|
||||||
use Doctrine\Tests\Models\Company\CompanyFixContract;
|
|
||||||
use Doctrine\Tests\Models\DDC3597\DDC3597Image;
|
|
||||||
use Doctrine\Tests\Models\DDC3597\DDC3597Media;
|
|
||||||
use Doctrine\Tests\Models\DDC3597\DDC3597Root;
|
|
||||||
use Doctrine\Tests\OrmFunctionalTestCase;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @group DDC-1955
|
|
||||||
* @group 5570
|
|
||||||
* @group 6174
|
|
||||||
*/
|
|
||||||
class EntityListenersOnMergeTest extends OrmFunctionalTestCase
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var CompanyContractListener
|
|
||||||
*/
|
|
||||||
private $listener;
|
|
||||||
|
|
||||||
protected function setUp()
|
|
||||||
{
|
|
||||||
$this->useModelSet('company');
|
|
||||||
parent::setUp();
|
|
||||||
|
|
||||||
$this->_schemaTool->createSchema([
|
|
||||||
$this->_em->getClassMetadata(DDC3597Root::class),
|
|
||||||
$this->_em->getClassMetadata(DDC3597Media::class),
|
|
||||||
$this->_em->getClassMetadata(DDC3597Image::class),
|
|
||||||
]);
|
|
||||||
|
|
||||||
$this->listener = $this->_em->getConfiguration()
|
|
||||||
->getEntityListenerResolver()
|
|
||||||
->resolve(CompanyContractListener::class);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function tearDown()
|
|
||||||
{
|
|
||||||
parent::tearDown();
|
|
||||||
|
|
||||||
$this->_schemaTool->dropSchema([
|
|
||||||
$this->_em->getClassMetadata(DDC3597Root::class),
|
|
||||||
$this->_em->getClassMetadata(DDC3597Media::class),
|
|
||||||
$this->_em->getClassMetadata(DDC3597Image::class),
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testMergeNewEntityLifecyleEventsModificationsShouldBeKept()
|
|
||||||
{
|
|
||||||
$imageEntity = new DDC3597Image('foobar');
|
|
||||||
|
|
||||||
$imageEntity->setFormat('JPG');
|
|
||||||
$imageEntity->setSize(123);
|
|
||||||
$imageEntity->getDimension()->setWidth(300);
|
|
||||||
$imageEntity->getDimension()->setHeight(500);
|
|
||||||
|
|
||||||
$imageEntity = $this->_em->merge($imageEntity);
|
|
||||||
|
|
||||||
$this->assertNotNull($imageEntity->getCreatedAt());
|
|
||||||
$this->assertNotNull($imageEntity->getUpdatedAt());
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testPrePersistListenersShouldBeFiredWithCorrectEntityData()
|
|
||||||
{
|
|
||||||
$fix = new CompanyFixContract();
|
|
||||||
|
|
||||||
$fix->setFixPrice(2000);
|
|
||||||
|
|
||||||
$this->listener->prePersistCalls = [];
|
|
||||||
|
|
||||||
$fix = $this->_em->merge($fix);
|
|
||||||
$this->_em->flush();
|
|
||||||
|
|
||||||
$this->assertCount(1, $this->listener->prePersistCalls);
|
|
||||||
|
|
||||||
$this->assertSame($fix, $this->listener->prePersistCalls[0][0]);
|
|
||||||
|
|
||||||
$this->assertInstanceOf(CompanyFixContract::class, $this->listener->prePersistCalls[0][0]);
|
|
||||||
$this->assertInstanceOf(LifecycleEventArgs::class, $this->listener->prePersistCalls[0][1]);
|
|
||||||
|
|
||||||
$this->assertArrayHasKey('fixPrice', $this->listener->snapshots[CompanyContractListener::PRE_PERSIST][0]);
|
|
||||||
$this->assertEquals(
|
|
||||||
$fix->getFixPrice(),
|
|
||||||
$this->listener->snapshots[CompanyContractListener::PRE_PERSIST][0]['fixPrice']
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user