1
0
mirror of synced 2025-02-02 21:41:45 +03:00

Merge branch 'feature/#6136-better-exception-message-on-invalid-connection-object'

Close #6136
This commit is contained in:
Marco Pivetta 2016-11-18 09:21:18 +01:00
commit e7856f90d8
2 changed files with 24 additions and 5 deletions

View File

@ -860,7 +860,13 @@ use Doctrine\Common\Util\ClassUtils;
} }
if ( ! $connection instanceof Connection) { if ( ! $connection instanceof Connection) {
throw new \InvalidArgumentException("Invalid argument: " . $connection); throw new \InvalidArgumentException(
sprintf(
'Invalid $connection argument of type %s given%s.',
is_object($connection) ? get_class($connection) : gettype($connection),
is_object($connection) ? '' : ': "' . $connection . '"'
)
);
} }
if ($eventManager !== null && $connection->getEventManager() !== $eventManager) { if ($eventManager !== null && $connection->getEventManager() !== $eventManager) {

View File

@ -2,6 +2,9 @@
namespace Doctrine\Tests\ORM; namespace Doctrine\Tests\ORM;
use Doctrine\Common\Persistence\Mapping\Driver\MappingDriver;
use Doctrine\ORM\Configuration;
use Doctrine\ORM\EntityManager;
use Doctrine\ORM\ORMException; use Doctrine\ORM\ORMException;
use Doctrine\ORM\ORMInvalidArgumentException; use Doctrine\ORM\ORMInvalidArgumentException;
use Doctrine\ORM\Query\ResultSetMapping; use Doctrine\ORM\Query\ResultSetMapping;
@ -72,9 +75,9 @@ class EntityManagerTest extends OrmTestCase
{ {
$rsm = new ResultSetMapping(); $rsm = new ResultSetMapping();
$this->_em->getConfiguration()->addNamedNativeQuery('foo', 'SELECT foo', $rsm); $this->_em->getConfiguration()->addNamedNativeQuery('foo', 'SELECT foo', $rsm);
$query = $this->_em->createNamedNativeQuery('foo'); $query = $this->_em->createNamedNativeQuery('foo');
$this->assertInstanceOf('Doctrine\ORM\NativeQuery', $query); $this->assertInstanceOf('Doctrine\ORM\NativeQuery', $query);
} }
@ -116,14 +119,14 @@ class EntityManagerTest extends OrmTestCase
$this->assertInstanceOf('Doctrine\ORM\Query', $q); $this->assertInstanceOf('Doctrine\ORM\Query', $q);
$this->assertEquals('SELECT 1', $q->getDql()); $this->assertEquals('SELECT 1', $q->getDql());
} }
/** /**
* @covers Doctrine\ORM\EntityManager::createNamedQuery * @covers Doctrine\ORM\EntityManager::createNamedQuery
*/ */
public function testCreateNamedQuery() public function testCreateNamedQuery()
{ {
$this->_em->getConfiguration()->addNamedQuery('foo', 'SELECT 1'); $this->_em->getConfiguration()->addNamedQuery('foo', 'SELECT 1');
$query = $this->_em->createNamedQuery('foo'); $query = $this->_em->createNamedQuery('foo');
$this->assertInstanceOf('Doctrine\ORM\Query', $query); $this->assertInstanceOf('Doctrine\ORM\Query', $query);
$this->assertEquals('SELECT 1', $query->getDql()); $this->assertEquals('SELECT 1', $query->getDql());
@ -204,4 +207,14 @@ class EntityManagerTest extends OrmTestCase
$this->assertSame($this->_em, $em); $this->assertSame($this->_em, $em);
return 'callback'; return 'callback';
} }
public function testCreateInvalidConnection()
{
$this->expectException(\InvalidArgumentException::class);
$this->expectExceptionMessage('Invalid $connection argument of type integer given: "1".');
$config = new Configuration();
$config->setMetadataDriverImpl($this->createMock(MappingDriver::class));
EntityManager::create(1, $config);
}
} }