[2.0][DDC-70] Added some EntityManager tests provided by beberlei.
This commit is contained in:
parent
f572c372dc
commit
10e3407ed1
2 changed files with 122 additions and 1 deletions
|
@ -449,6 +449,7 @@ class EntityManager
|
|||
*/
|
||||
public function merge($entity)
|
||||
{
|
||||
$this->_errorIfClosed();
|
||||
return $this->_unitOfWork->merge($entity);
|
||||
}
|
||||
|
||||
|
@ -461,6 +462,7 @@ class EntityManager
|
|||
*/
|
||||
public function copy($entity, $deep = false)
|
||||
{
|
||||
$this->_errorIfClosed();
|
||||
throw DoctrineException::notImplemented(__FUNCTION__, __CLASS__);
|
||||
}
|
||||
|
||||
|
|
|
@ -22,5 +22,124 @@ class EntityManagerTest extends \Doctrine\Tests\OrmTestCase
|
|||
$this->fail("Setting invalid flushmode did not trigger exception.");
|
||||
} catch (\Doctrine\ORM\EntityManagerException $expected) {}
|
||||
$this->_em->setFlushMode($prev);
|
||||
}
|
||||
}
|
||||
|
||||
public function testGetConnection()
|
||||
{
|
||||
$this->assertType('\Doctrine\DBAL\Connection', $this->_em->getConnection());
|
||||
}
|
||||
|
||||
public function testGetMetadataFactory()
|
||||
{
|
||||
$this->assertType('\Doctrine\ORM\Mapping\ClassMetadataFactory', $this->_em->getMetadataFactory());
|
||||
}
|
||||
|
||||
public function testGetConfiguration()
|
||||
{
|
||||
$this->assertType('\Doctrine\ORM\Configuration', $this->_em->getConfiguration());
|
||||
}
|
||||
|
||||
public function testGetUnitOfWork()
|
||||
{
|
||||
$this->assertType('\Doctrine\ORM\UnitOfWork', $this->_em->getUnitOfWork());
|
||||
}
|
||||
|
||||
public function testGetProxyFactory()
|
||||
{
|
||||
$this->assertType('\Doctrine\ORM\Proxy\ProxyFactory', $this->_em->getProxyFactory());
|
||||
}
|
||||
|
||||
public function testGetEventManager()
|
||||
{
|
||||
$this->assertType('\Doctrine\Common\EventManager', $this->_em->getEventManager());
|
||||
}
|
||||
|
||||
public function testGetDefaultFlushMode_OnCommit()
|
||||
{
|
||||
$this->assertEquals(\Doctrine\ORM\EntityManager::FLUSHMODE_COMMIT, $this->_em->getFlushMode());
|
||||
}
|
||||
|
||||
public function testCommit_FlushModeOnCommit_FlushUnitOfWork()
|
||||
{
|
||||
$this->markTestSkipped('_unitOfWork is private, but EntityManager does not use getUnitofWork() all the time');
|
||||
|
||||
$uow = $this->getMock('\Doctrine\ORM\UnitOfWork', array(), array(), '', false);
|
||||
$uow->expects($this->once())
|
||||
->method('flush');
|
||||
|
||||
$this->_em->setUnitOfWork($uow);
|
||||
$this->_em->setFlushMode(\Doctrine\ORM\EntityManager::FLUSHMODE_COMMIT);
|
||||
|
||||
$this->assertSame($uow, $this->_em->getUnitOfWork());
|
||||
|
||||
$this->_em->beginTransaction();
|
||||
$this->_em->commit();
|
||||
}
|
||||
|
||||
|
||||
public function testCommit_FlushModeAuto_FlushUnitOfWork()
|
||||
{
|
||||
$this->markTestSkipped('_unitOfWork is private, but EntityManager does not use getUnitofWork() all the time');
|
||||
|
||||
$uow = $this->getMock('\Doctrine\ORM\UnitOfWork', array(), array(), '', false);
|
||||
$uow->expects($this->once())
|
||||
->method('flush');
|
||||
|
||||
$this->_em->setUnitOfWork($uow);
|
||||
$this->_em->setFlushMode(\Doctrine\ORM\EntityManager::FLUSHMODE_AUTO);
|
||||
|
||||
$this->assertSame($uow, $this->_em->getUnitOfWork());
|
||||
|
||||
$this->_em->beginTransaction();
|
||||
$this->_em->commit();
|
||||
}
|
||||
|
||||
public function testCreateNativeQuery()
|
||||
{
|
||||
$rsm = new \Doctrine\ORM\Query\ResultSetMapping();
|
||||
$query = $this->_em->createNativeQuery('SELECT foo', $rsm);
|
||||
|
||||
$this->assertSame('SELECT foo', $query->getSql());
|
||||
}
|
||||
|
||||
public function testCreateQueryBuilder()
|
||||
{
|
||||
$this->assertType('\Doctrine\ORM\QueryBuilder', $this->_em->createQueryBuilder());
|
||||
}
|
||||
|
||||
public function testCreateQuery_DqlIsOptional()
|
||||
{
|
||||
$this->assertType('\Doctrine\ORM\Query', $this->_em->createQuery());
|
||||
}
|
||||
|
||||
public function testCreateQuery()
|
||||
{
|
||||
$q = $this->_em->createQuery('SELECT 1');
|
||||
$this->assertType('\Doctrine\ORM\Query', $q);
|
||||
$this->assertEquals('SELECT 1', $q->getDql());
|
||||
}
|
||||
|
||||
static public function dataAffectedByErrorIfClosedException()
|
||||
{
|
||||
return array(
|
||||
array('flush'),
|
||||
array('persist'),
|
||||
array('remove'),
|
||||
array('merge'),
|
||||
array('refresh'),
|
||||
array('copy'),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider dataAffectedByErrorIfClosedException
|
||||
* @param string $methodName
|
||||
*/
|
||||
public function testAffectedByErrorIfClosedException($methodName)
|
||||
{
|
||||
$this->setExpectedException('Doctrine\ORM\EntityManagerException', 'Closed');
|
||||
|
||||
$this->_em->close();
|
||||
$this->_em->$methodName(new \stdClass());
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue