-
-
Save doctrinebot/891b18924cf754198a02 to your computer and use it in GitHub Desktop.
Attachments to Doctrine Jira Issue DDC-70 - https://github.com/doctrine/doctrine2/issues/5212
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Index: tests/Doctrine/Tests/ORM/EntityManagerTest.php | |
=================================================================== | |
--- tests/Doctrine/Tests/ORM/EntityManagerTest.php (revision 6579) | |
+++ tests/Doctrine/Tests/ORM/EntityManagerTest.php (working copy) | |
@@ -22,5 +22,124 @@ | |
$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()); | |
+ } | |
} | |
\ No newline at end of file | |
Index: lib/Doctrine/ORM/EntityManager.php | |
=================================================================== | |
--- lib/Doctrine/ORM/EntityManager.php (revision 6579) | |
+++ lib/Doctrine/ORM/EntityManager.php (working copy) | |
@@ -449,6 +449,7 @@ | |
*/ | |
public function merge($entity) | |
{ | |
+ $this->_errorIfClosed(); | |
return $this->_unitOfWork->merge($entity); | |
} | |
@@ -461,6 +462,7 @@ | |
*/ | |
public function copy($entity, $deep = false) | |
{ | |
+ $this->_errorIfClosed(); | |
throw DoctrineException::notImplemented(__FUNCTION__, __CLASS__); | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment