Файл: symfony-2.7/src/Symfony/Bridge/Doctrine/Tests/Form/ChoiceList/ORMQueryBuilderLoaderTest.php
Строк: 92
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace SymfonyBridgeDoctrineTestsFormChoiceList;
use SymfonyBridgeDoctrineFormChoiceListORMQueryBuilderLoader;
use SymfonyBridgeDoctrineTestDoctrineTestHelper;
use DoctrineDBALConnection;
class ORMQueryBuilderLoaderTest extends DoctrineTestHelper
{
/**
* @expectedException SymfonyComponentFormExceptionUnexpectedTypeException
*/
public function testItOnlyWorksWithQueryBuilderOrClosure()
{
new ORMQueryBuilderLoader(new stdClass());
}
/**
* @expectedException SymfonyComponentFormExceptionUnexpectedTypeException
*/
public function testClosureRequiresTheEntityManager()
{
$closure = function () {};
new ORMQueryBuilderLoader($closure);
}
public function testIdentifierTypeIsStringArray()
{
$this->checkIdentifierType('SymfonyBridgeDoctrineTestsFixturesSingleStringIdEntity', Connection::PARAM_STR_ARRAY);
}
public function testIdentifierTypeIsIntegerArray()
{
$this->checkIdentifierType('SymfonyBridgeDoctrineTestsFixturesSingleIntIdEntity', Connection::PARAM_INT_ARRAY);
}
protected function checkIdentifierType($classname, $expectedType)
{
$em = $this->createTestEntityManager();
$query = $this->getMockBuilder('QueryMock')
->setMethods(array('setParameter', 'getResult', 'getSql', '_doExecute'))
->getMock();
$query->expects($this->once())
->method('setParameter')
->with('ORMQueryBuilderLoader_getEntitiesByIds_id', array(), $expectedType)
->will($this->returnValue($query));
$qb = $this->getMockBuilder('DoctrineORMQueryBuilder')
->setConstructorArgs(array($em))
->setMethods(array('getQuery'))
->getMock();
$qb->expects($this->once())
->method('getQuery')
->will($this->returnValue($query));
$qb->select('e')
->from($classname, 'e');
$loader = new ORMQueryBuilderLoader($qb);
$loader->getEntitiesByIds('id', array());
}
}