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

#6623 splitting test scenario into two bits

This commit is contained in:
Marco Pivetta 2017-08-16 15:07:48 +02:00
parent f0ed4e87b5
commit 7024926f10
No known key found for this signature in database
GPG Key ID: 4167D3337FD9D629

View File

@ -2,13 +2,13 @@
namespace Doctrine\Tests\ORM\Functional\Ticket;
use Doctrine\DBAL\Connection;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\Common\EventManager;
use Doctrine\DBAL\Connection;
use Doctrine\DBAL\Driver\Statement;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\Events;
use Doctrine\ORM\Query\ResultSetMapping;
use Doctrine\ORM\Internal\Hydration\AbstractHydrator;
use Doctrine\ORM\Query\ResultSetMapping;
use Doctrine\Tests\OrmFunctionalTestCase;
/**
@ -16,6 +16,56 @@ use Doctrine\Tests\OrmFunctionalTestCase;
*/
class AbstractHydratorTest extends OrmFunctionalTestCase
{
/**
* @var EventManager|\PHPUnit_Framework_MockObject_MockObject
*/
private $mockEventManager;
/**
* @var Statement|\PHPUnit_Framework_MockObject_MockObject
*/
private $mockStatement;
/**
* @var ResultSetMapping|\PHPUnit_Framework_MockObject_MockObject
*/
private $mockResultMapping;
/**
* @var AbstractHydrator
*/
private $hydrator;
protected function setUp() : void
{
parent::setUp();
$mockConnection = $this->createMock(Connection::class);
$mockEntityManagerInterface = $this->createMock(EntityManagerInterface::class);
$this->mockEventManager = $this->createMock(EventManager::class);
$this->mockStatement = $this->createMock(Statement::class);
$this->mockResultMapping = $this->getMockBuilder(ResultSetMapping::class);
$mockEntityManagerInterface
->expects(self::any())
->method('getEventManager')
->willReturn($this->mockEventManager);
$mockEntityManagerInterface
->expects(self::any())
->method('getConnection')
->willReturn($mockConnection);
$this->mockStatement
->expects(self::any())
->method('fetch')
->willReturn(false);
$this->hydrator = $this
->getMockBuilder(AbstractHydrator::class)
->setConstructorArgs([$mockEntityManagerInterface])
->setMethods(['hydrateAllData'])
->getMock();
}
/**
* @group DDC-3146
* @group #1515
@ -23,46 +73,40 @@ class AbstractHydratorTest extends OrmFunctionalTestCase
* Verify that the number of added events to the event listener from the abstract hydrator class is equal to the
* number of removed events
*/
public function testOnClearEventListenerIsDetachedOnCleanup()
public function testOnClearEventListenerIsDetachedOnCleanup() : void
{
$mockConnection = $this->createMock(Connection::class);
$mockEntityManagerInterface = $this->createMock(EntityManagerInterface::class);
$mockEventManager = $this->createMock(EventManager::class);
$mockStatement = $this->createMock(Statement::class);
$mockResultMapping = $this->getMockBuilder(ResultSetMapping::class);
$mockEntityManagerInterface->expects(self::any())->method('getEventManager')->willReturn($mockEventManager);
$mockEntityManagerInterface->expects(self::any())->method('getConnection')->willReturn($mockConnection);
$mockStatement->expects(self::once())->method('fetch')->willReturn(false);
/* @var $mockAbstractHydrator AbstractHydrator */
$mockAbstractHydrator = $this
->getMockBuilder(AbstractHydrator::class)
->setConstructorArgs([$mockEntityManagerInterface])
->setMethods(['hydrateAllData'])
->getMock();
$mockEventManager
$this
->mockEventManager
->expects(self::at(0))
->method('addEventListener')
->with([Events::onClear], $mockAbstractHydrator);
->with([Events::onClear], $this->hydrator);
$mockEventManager
$this
->mockEventManager
->expects(self::at(1))
->method('removeEventListener')
->with([Events::onClear], $mockAbstractHydrator);
->with([Events::onClear], $this->hydrator);
$mockEventManager
->expects(self::at(2))
iterator_to_array($this->hydrator->iterate($this->mockStatement, $this->mockResultMapping));
}
/**
* @group #6623
*/
public function testHydrateAllRegistersAndClearsAllAttachedListeners() : void
{
$this
->mockEventManager
->expects(self::at(0))
->method('addEventListener')
->with([Events::onClear], $mockAbstractHydrator);
->with([Events::onClear], $this->hydrator);
$mockEventManager
->expects(self::at(3))
$this
->mockEventManager
->expects(self::at(1))
->method('removeEventListener')
->with([Events::onClear], $mockAbstractHydrator);
->with([Events::onClear], $this->hydrator);
iterator_to_array($mockAbstractHydrator->iterate($mockStatement, $mockResultMapping));
$mockAbstractHydrator->hydrateAll($mockStatement, $mockResultMapping);
$this->hydrator->hydrateAll($this->mockStatement, $this->mockResultMapping);
}
}