From f9a605f6ca1de37a8abf70e33fd363f7e3191c4c Mon Sep 17 00:00:00 2001 From: SpacePossum Date: Thu, 17 Nov 2016 17:23:22 +0100 Subject: [PATCH] Add details about invalid Connection passed at creation. --- lib/Doctrine/ORM/EntityManager.php | 2 +- .../Doctrine/Tests/ORM/EntityManagerTest.php | 22 +++++++++++++++---- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/lib/Doctrine/ORM/EntityManager.php b/lib/Doctrine/ORM/EntityManager.php index 4de4932bc..112502b5a 100644 --- a/lib/Doctrine/ORM/EntityManager.php +++ b/lib/Doctrine/ORM/EntityManager.php @@ -860,7 +860,7 @@ use Doctrine\Common\Util\ClassUtils; } if ( ! $connection instanceof Connection) { - throw new \InvalidArgumentException("Invalid argument: " . $connection); + throw new \InvalidArgumentException(sprintf('Invalid argument for connection "%s".', is_object($connection) ? get_class($connection) : gettype($connection) . '#' . $connection)); } if ($eventManager !== null && $connection->getEventManager() !== $eventManager) { diff --git a/tests/Doctrine/Tests/ORM/EntityManagerTest.php b/tests/Doctrine/Tests/ORM/EntityManagerTest.php index cf6fc99a4..1b08fb79e 100644 --- a/tests/Doctrine/Tests/ORM/EntityManagerTest.php +++ b/tests/Doctrine/Tests/ORM/EntityManagerTest.php @@ -2,6 +2,9 @@ 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\ORMInvalidArgumentException; use Doctrine\ORM\Query\ResultSetMapping; @@ -72,9 +75,9 @@ class EntityManagerTest extends OrmTestCase { $rsm = new ResultSetMapping(); $this->_em->getConfiguration()->addNamedNativeQuery('foo', 'SELECT foo', $rsm); - + $query = $this->_em->createNamedNativeQuery('foo'); - + $this->assertInstanceOf('Doctrine\ORM\NativeQuery', $query); } @@ -116,14 +119,14 @@ class EntityManagerTest extends OrmTestCase $this->assertInstanceOf('Doctrine\ORM\Query', $q); $this->assertEquals('SELECT 1', $q->getDql()); } - + /** * @covers Doctrine\ORM\EntityManager::createNamedQuery */ public function testCreateNamedQuery() { $this->_em->getConfiguration()->addNamedQuery('foo', 'SELECT 1'); - + $query = $this->_em->createNamedQuery('foo'); $this->assertInstanceOf('Doctrine\ORM\Query', $query); $this->assertEquals('SELECT 1', $query->getDql()); @@ -204,4 +207,15 @@ class EntityManagerTest extends OrmTestCase $this->assertSame($this->_em, $em); return 'callback'; } + + /** + * @expectedException \InvalidArgumentException + * @expectedExceptionMessageRegExp /^Invalid argument for connection \"integer#1\".$/ + */ + public function testCreateInvalidConnection() + { + $config = new Configuration(); + $config->setMetadataDriverImpl($this->createMock(MappingDriver::class)); + EntityManager::create(1, $config); + } }