Fixes #1391, DDC-3693
This commit is contained in:
parent
0345f7b836
commit
a16dc65cd2
1
.gitignore
vendored
1
.gitignore
vendored
@ -10,6 +10,7 @@ lib/Doctrine/DBAL
|
|||||||
.buildpath
|
.buildpath
|
||||||
.project
|
.project
|
||||||
.idea
|
.idea
|
||||||
|
*.iml
|
||||||
vendor/
|
vendor/
|
||||||
composer.lock
|
composer.lock
|
||||||
/tests/Doctrine/Performance/history.db
|
/tests/Doctrine/Performance/history.db
|
||||||
|
@ -196,6 +196,41 @@ class UnitOfWorkTest extends OrmTestCase
|
|||||||
$this->assertTrue($updates[0] === $item);
|
$this->assertTrue($updates[0] === $item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testChangeTrackingNotifyIndividualCommit()
|
||||||
|
{
|
||||||
|
$persister = new EntityPersisterMock($this->_emMock, $this->_emMock->getClassMetadata("Doctrine\Tests\ORM\NotifyChangedEntity"));
|
||||||
|
$this->_unitOfWork->setEntityPersister('Doctrine\Tests\ORM\NotifyChangedEntity', $persister);
|
||||||
|
$itemPersister = new EntityPersisterMock($this->_emMock, $this->_emMock->getClassMetadata("Doctrine\Tests\ORM\NotifyChangedRelatedItem"));
|
||||||
|
$this->_unitOfWork->setEntityPersister('Doctrine\Tests\ORM\NotifyChangedRelatedItem', $itemPersister);
|
||||||
|
|
||||||
|
$entity = new NotifyChangedEntity;
|
||||||
|
$entity->setData('thedata');
|
||||||
|
|
||||||
|
$entity2 = new NotifyChangedEntity;
|
||||||
|
$entity2->setData('thedata');
|
||||||
|
|
||||||
|
$this->_unitOfWork->persist($entity);
|
||||||
|
$this->_unitOfWork->persist($entity2);
|
||||||
|
$this->_unitOfWork->commit($entity);
|
||||||
|
$this->_unitOfWork->commit();
|
||||||
|
|
||||||
|
$this->assertEquals(2, count($persister->getInserts()));
|
||||||
|
|
||||||
|
$persister->reset();
|
||||||
|
|
||||||
|
$this->assertTrue($this->_unitOfWork->isInIdentityMap($entity2));
|
||||||
|
|
||||||
|
$entity->setData('newdata');
|
||||||
|
$entity2->setData('newdata');
|
||||||
|
|
||||||
|
$this->_unitOfWork->commit($entity);
|
||||||
|
|
||||||
|
$this->assertTrue($this->_unitOfWork->isScheduledForDirtyCheck($entity2));
|
||||||
|
$this->assertEquals(array('data' => array('thedata', 'newdata')), $this->_unitOfWork->getEntityChangeSet($entity2));
|
||||||
|
$this->assertFalse($this->_unitOfWork->isScheduledForDirtyCheck($entity));
|
||||||
|
$this->assertEquals(array(), $this->_unitOfWork->getEntityChangeSet($entity));
|
||||||
|
}
|
||||||
|
|
||||||
public function testGetEntityStateOnVersionedEntityWithAssignedIdentifier()
|
public function testGetEntityStateOnVersionedEntityWithAssignedIdentifier()
|
||||||
{
|
{
|
||||||
$persister = new EntityPersisterMock($this->_emMock, $this->_emMock->getClassMetadata(VersionedAssignedIdentifierEntity::class));
|
$persister = new EntityPersisterMock($this->_emMock, $this->_emMock->getClassMetadata(VersionedAssignedIdentifierEntity::class));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user