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 ->expects(self::at(0)) ->method('addEventListener') ->with([Events::onClear], $mockAbstractHydrator); $mockEventManager ->expects(self::at(1)) ->method('removeEventListener') ->with([Events::onClear], $mockAbstractHydrator); iterator_to_array($mockAbstractHydrator->iterate($mockStatement, $mockResultMapping)); } }