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
|
||||
.project
|
||||
.idea
|
||||
*.iml
|
||||
vendor/
|
||||
composer.lock
|
||||
/tests/Doctrine/Performance/history.db
|
||||
|
@ -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));
|
||||
|
Loading…
x
Reference in New Issue
Block a user