2008-12-18 14:08:11 +00:00
|
|
|
<?php
|
2009-01-04 16:15:32 +00:00
|
|
|
|
2009-01-22 19:38:10 +00:00
|
|
|
namespace Doctrine\Tests\Mocks;
|
2008-12-18 14:08:11 +00:00
|
|
|
|
2016-05-11 01:55:12 +07:00
|
|
|
use Doctrine\ORM\UnitOfWork;
|
|
|
|
|
2012-12-14 18:55:28 +00:00
|
|
|
/**
|
|
|
|
* Mock class for UnitOfWork.
|
|
|
|
*/
|
2016-05-11 01:55:12 +07:00
|
|
|
class UnitOfWorkMock extends UnitOfWork
|
2009-02-18 07:59:11 +00:00
|
|
|
{
|
2012-12-14 18:55:28 +00:00
|
|
|
/**
|
|
|
|
* @var array
|
|
|
|
*/
|
2016-12-07 23:33:41 +01:00
|
|
|
private $_mockDataChangeSets = [];
|
2012-12-14 18:55:28 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @var array|null
|
|
|
|
*/
|
2009-02-02 11:55:50 +00:00
|
|
|
private $_persisterMock;
|
|
|
|
|
|
|
|
/**
|
2012-12-14 18:55:28 +00:00
|
|
|
* {@inheritdoc}
|
2009-02-02 11:55:50 +00:00
|
|
|
*/
|
|
|
|
public function getEntityPersister($entityName)
|
|
|
|
{
|
2016-02-16 05:03:11 +00:00
|
|
|
return isset($this->_persisterMock[$entityName])
|
|
|
|
? $this->_persisterMock[$entityName]
|
|
|
|
: parent::getEntityPersister($entityName);
|
2009-02-02 11:55:50 +00:00
|
|
|
}
|
2008-12-18 14:08:11 +00:00
|
|
|
|
|
|
|
/**
|
2012-12-14 18:55:28 +00:00
|
|
|
* {@inheritdoc}
|
2008-12-18 14:08:11 +00:00
|
|
|
*/
|
2016-02-16 05:03:11 +00:00
|
|
|
public function & getEntityChangeSet($entity)
|
2009-02-18 07:59:11 +00:00
|
|
|
{
|
2009-01-03 19:50:13 +00:00
|
|
|
$oid = spl_object_hash($entity);
|
2016-02-16 05:03:11 +00:00
|
|
|
|
|
|
|
if (isset($this->_mockDataChangeSets[$oid])) {
|
|
|
|
return $this->_mockDataChangeSets[$oid];
|
|
|
|
}
|
|
|
|
|
|
|
|
$data = parent::getEntityChangeSet($entity);
|
|
|
|
|
|
|
|
return $data;
|
2008-12-18 14:08:11 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/* MOCK API */
|
|
|
|
|
2009-02-02 11:55:50 +00:00
|
|
|
/**
|
|
|
|
* Sets a (mock) persister for an entity class that will be returned when
|
|
|
|
* getEntityPersister() is invoked for that class.
|
|
|
|
*
|
2015-01-15 05:01:52 +00:00
|
|
|
* @param string $entityName
|
|
|
|
* @param \Doctrine\ORM\Persisters\Entity\BasicEntityPersister $persister
|
2012-12-14 18:55:28 +00:00
|
|
|
*
|
|
|
|
* @return void
|
2009-02-02 11:55:50 +00:00
|
|
|
*/
|
|
|
|
public function setEntityPersister($entityName, $persister)
|
|
|
|
{
|
|
|
|
$this->_persisterMock[$entityName] = $persister;
|
|
|
|
}
|
|
|
|
|
2012-12-14 18:55:28 +00:00
|
|
|
/**
|
|
|
|
* {@inheritdoc}
|
|
|
|
*/
|
2009-01-03 19:50:13 +00:00
|
|
|
public function setOriginalEntityData($entity, array $originalData)
|
|
|
|
{
|
|
|
|
$this->_originalEntityData[spl_object_hash($entity)] = $originalData;
|
2008-12-18 14:08:11 +00:00
|
|
|
}
|
2012-12-14 18:55:28 +00:00
|
|
|
}
|