123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 |
- <?php
- namespace Doctrine\Tests\ORM;
- require_once __DIR__ . '/../TestInit.php';
- class EntityManagerTest extends \Doctrine\Tests\OrmTestCase
- {
- private $_em;
- function setUp()
- {
- parent::setUp();
- $this->_em = $this->_getTestEntityManager();
- }
- /**
- * @group DDC-899
- */
- public function testIsOpen()
- {
- $this->assertTrue($this->_em->isOpen());
- $this->_em->close();
- $this->assertFalse($this->_em->isOpen());
- }
- public function testGetConnection()
- {
- $this->assertInstanceOf('Doctrine\DBAL\Connection', $this->_em->getConnection());
- }
- public function testGetMetadataFactory()
- {
- $this->assertInstanceOf('Doctrine\ORM\Mapping\ClassMetadataFactory', $this->_em->getMetadataFactory());
- }
- public function testGetConfiguration()
- {
- $this->assertInstanceOf('Doctrine\ORM\Configuration', $this->_em->getConfiguration());
- }
- public function testGetUnitOfWork()
- {
- $this->assertInstanceOf('Doctrine\ORM\UnitOfWork', $this->_em->getUnitOfWork());
- }
- public function testGetProxyFactory()
- {
- $this->assertInstanceOf('Doctrine\ORM\Proxy\ProxyFactory', $this->_em->getProxyFactory());
- }
- public function testGetEventManager()
- {
- $this->assertInstanceOf('Doctrine\Common\EventManager', $this->_em->getEventManager());
- }
- 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->assertInstanceOf('Doctrine\ORM\QueryBuilder', $this->_em->createQueryBuilder());
- }
- public function testCreateQueryBuilderAliasValid()
- {
- $q = $this->_em->createQueryBuilder()
- ->select('u')->from('Doctrine\Tests\Models\CMS\CmsUser', 'u');
- $q2 = clone $q;
- $this->assertEquals('SELECT u FROM Doctrine\Tests\Models\CMS\CmsUser u', $q->getQuery()->getDql());
- $this->assertEquals('SELECT u FROM Doctrine\Tests\Models\CMS\CmsUser u', $q2->getQuery()->getDql());
- $q3 = clone $q;
- $this->assertEquals('SELECT u FROM Doctrine\Tests\Models\CMS\CmsUser u', $q3->getQuery()->getDql());
- }
- public function testCreateQuery_DqlIsOptional()
- {
- $this->assertInstanceOf('Doctrine\ORM\Query', $this->_em->createQuery());
- }
- public function testGetPartialReference()
- {
- $user = $this->_em->getPartialReference('Doctrine\Tests\Models\CMS\CmsUser', 42);
- $this->assertTrue($this->_em->contains($user));
- $this->assertEquals(42, $user->id);
- $this->assertNull($user->getName());
- }
- public function testCreateQuery()
- {
- $q = $this->_em->createQuery('SELECT 1');
- $this->assertInstanceOf('Doctrine\ORM\Query', $q);
- $this->assertEquals('SELECT 1', $q->getDql());
- }
- static public function dataMethodsAffectedByNoObjectArguments()
- {
- return array(
- array('persist'),
- array('remove'),
- array('merge'),
- array('refresh'),
- array('detach')
- );
- }
- /**
- * @dataProvider dataMethodsAffectedByNoObjectArguments
- */
- public function testThrowsExceptionOnNonObjectValues($methodName) {
- $this->setExpectedException('Doctrine\ORM\ORMInvalidArgumentException',
- 'EntityManager#'.$methodName.'() expects parameter 1 to be an entity object, NULL given.');
- $this->_em->$methodName(null);
- }
- static public function dataAffectedByErrorIfClosedException()
- {
- return array(
- array('flush'),
- array('persist'),
- array('remove'),
- array('merge'),
- array('refresh'),
- );
- }
- /**
- * @dataProvider dataAffectedByErrorIfClosedException
- * @param string $methodName
- */
- public function testAffectedByErrorIfClosedException($methodName)
- {
- $this->setExpectedException('Doctrine\ORM\ORMException', 'closed');
- $this->_em->close();
- $this->_em->$methodName(new \stdClass());
- }
- /**
- * @group DDC-1125
- */
- public function testTransactionalAcceptsReturn()
- {
- $return = $this->_em->transactional(function ($em) {
- return 'foo';
- });
- $this->assertEquals('foo', $return);
- }
- public function testTransactionalAcceptsVariousCallables()
- {
- $this->assertSame('callback', $this->_em->transactional(array($this, 'transactionalCallback')));
- }
- public function testTransactionalThrowsInvalidArgumentExceptionIfNonCallablePassed()
- {
- $this->setExpectedException('InvalidArgumentException', 'Expected argument of type "callable", got "object"');
- $this->_em->transactional($this);
- }
- public function transactionalCallback($em)
- {
- $this->assertSame($this->_em, $em);
- return 'callback';
- }
- }
|