1
0
mirror of synced 2025-02-02 13:31:45 +03:00

Fixes #1391, DDC-3693

This commit is contained in:
Guilherme Blanco 2017-12-18 22:46:48 -05:00
parent 0345f7b836
commit a16dc65cd2
2 changed files with 36 additions and 0 deletions

1
.gitignore vendored
View File

@ -10,6 +10,7 @@ lib/Doctrine/DBAL
.buildpath
.project
.idea
*.iml
vendor/
composer.lock
/tests/Doctrine/Performance/history.db

View File

@ -196,6 +196,41 @@ class UnitOfWorkTest extends OrmTestCase
$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()
{
$persister = new EntityPersisterMock($this->_emMock, $this->_emMock->getClassMetadata(VersionedAssignedIdentifierEntity::class));