@@ -194,6 +194,10 @@ abstract class AbstractDoctrineExtensionTest extends \PHPUnit_Framework_TestCase
|
||||
$this->assertEquals('doctrine.orm.default_query_cache', (string) $calls[2][1][0]);
|
||||
$this->assertEquals('doctrine.orm.default_result_cache', (string) $calls[3][1][0]);
|
||||
|
||||
if (version_compare(\Doctrine\ORM\Version::VERSION, "2.3.0-DEV") >= 0) {
|
||||
$this->assertEquals('doctrine.orm.naming_strategy.default', (string) $calls[10][1][0]);
|
||||
}
|
||||
|
||||
$definition = $container->getDefinition('doctrine.orm.default_metadata_cache');
|
||||
$this->assertEquals('%doctrine.orm.cache.array.class%', $definition->getClass());
|
||||
|
||||
@@ -701,6 +705,25 @@ abstract class AbstractDoctrineExtensionTest extends \PHPUnit_Framework_TestCase
|
||||
$this->assertDICDefinitionMethodCallOnce($definition, 'addCustomDatetimeFunction', array('test_datetime', 'Symfony\Bundle\DoctrineBundle\Tests\DependencyInjection\TestDatetimeFunction'));
|
||||
}
|
||||
|
||||
public function testSetNamingStrategy()
|
||||
{
|
||||
if (version_compare(\Doctrine\ORM\Version::VERSION, "2.3.0-DEV") < 0) {
|
||||
$this->markTestSkipped('Naming Strategies are not available');
|
||||
}
|
||||
$container = $this->getContainer(array('YamlBundle'));
|
||||
|
||||
$loader = new DoctrineExtension();
|
||||
$container->registerExtension($loader);
|
||||
$this->loadFromFile($container, 'orm_namingstrategy');
|
||||
$this->compileContainer($container);
|
||||
|
||||
$def1 = $container->getDefinition('doctrine.orm.em1_configuration');
|
||||
$def2 = $container->getDefinition('doctrine.orm.em2_configuration');
|
||||
|
||||
$this->assertDICDefinitionMethodCallOnce($def1, 'setNamingStrategy', array(0 => new Reference('doctrine.orm.naming_strategy.default')));
|
||||
$this->assertDICDefinitionMethodCallOnce($def2, 'setNamingStrategy', array(0 => new Reference('doctrine.orm.naming_strategy.underscore')));
|
||||
}
|
||||
|
||||
public function testSingleEMSetCustomFunctions()
|
||||
{
|
||||
$container = $this->getContainer(array('YamlBundle'));
|
||||
@@ -763,6 +786,20 @@ abstract class AbstractDoctrineExtensionTest extends \PHPUnit_Framework_TestCase
|
||||
$this->assertDICDefinitionMethodCallOnce($definition, 'addResolveTargetEntity', array('Symfony\Component\Security\Core\User\UserInterface', 'MyUserClass', array()));
|
||||
$this->assertEquals(array('doctrine.event_listener' => array( array('event' => 'loadClassMetadata') ) ), $definition->getTags());
|
||||
}
|
||||
|
||||
public function testDbalSchemaFilter()
|
||||
{
|
||||
$container = $this->getContainer();
|
||||
$loader = new DoctrineExtension();
|
||||
$container->registerExtension($loader);
|
||||
|
||||
$this->loadFromFile($container, 'dbal_schema_filter');
|
||||
|
||||
$this->compileContainer($container);
|
||||
|
||||
$definition = $container->getDefinition('doctrine.dbal.default_connection.configuration');
|
||||
$this->assertDICDefinitionMethodCallOnce($definition, 'setFilterSchemaAssetsExpression', array('^sf2_'));
|
||||
}
|
||||
|
||||
protected function getContainer($bundles = 'YamlBundle', $vendor = null)
|
||||
{
|
||||
|
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" ?>
|
||||
|
||||
<srv:container xmlns="http://symfony.com/schema/dic/doctrine"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:srv="http://symfony.com/schema/dic/services"
|
||||
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd
|
||||
http://symfony.com/schema/dic/doctrine http://symfony.com/schema/dic/doctrine/doctrine-1.0.xsd">
|
||||
|
||||
<config>
|
||||
<dbal schema-filter="^sf2_" />
|
||||
</config>
|
||||
</srv:container>
|
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" ?>
|
||||
|
||||
<srv:container xmlns="http://symfony.com/schema/dic/doctrine"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:srv="http://symfony.com/schema/dic/services"
|
||||
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd
|
||||
http://symfony.com/schema/dic/doctrine http://symfony.com/schema/dic/doctrine/doctrine-1.0.xsd">
|
||||
|
||||
<config>
|
||||
<dbal default-connection="default">
|
||||
<connection name="default" dbname="db" />
|
||||
</dbal>
|
||||
|
||||
<orm default-entity-manager="em1">
|
||||
<entity-manager name="em1" naming-strategy="doctrine.orm.naming_strategy.default">
|
||||
<mapping name="YamlBundle" />
|
||||
</entity-manager>
|
||||
<entity-manager name="em2" naming-strategy="doctrine.orm.naming_strategy.underscore">
|
||||
<mapping name="YamlBundle" />
|
||||
</entity-manager>
|
||||
</orm>
|
||||
</config>
|
||||
</srv:container>
|
@@ -0,0 +1,3 @@
|
||||
doctrine:
|
||||
dbal:
|
||||
schema_filter: ^sf2_
|
@@ -0,0 +1,18 @@
|
||||
doctrine:
|
||||
dbal:
|
||||
default_connection: default
|
||||
connections:
|
||||
default:
|
||||
dbname: db
|
||||
|
||||
orm:
|
||||
default_entity_manager: em1
|
||||
entity_managers:
|
||||
em1:
|
||||
mappings:
|
||||
YamlBundle: ~
|
||||
naming_strategy: doctrine.orm.naming_strategy.default
|
||||
em2:
|
||||
mappings:
|
||||
YamlBundle: ~
|
||||
naming_strategy: doctrine.orm.naming_strategy.underscore
|
@@ -38,23 +38,28 @@ class XMLSchemaTest extends \PHPUnit_Framework_TestCase
|
||||
$dom = new \DOMDocument('1.0', 'UTF-8');
|
||||
$dom->load($file);
|
||||
|
||||
$xmlns = "http://symfony.com/schema/dic/doctrine";
|
||||
|
||||
$dbalElements = $dom->getElementsByTagNameNS("http://symfony.com/schema/dic/doctrine", "config");
|
||||
$dbalElements = $dom->getElementsByTagNameNS($xmlns, 'dbal');
|
||||
if ($dbalElements->length) {
|
||||
$dbalDom = new \DOMDocument('1.0', 'UTF-8');
|
||||
$dbalNode = $dbalDom->importNode($dbalElements->item(0));
|
||||
$dbalDom->appendChild($dbalNode);
|
||||
$configNode = $dbalDom->createElementNS($xmlns, 'config');
|
||||
$configNode->appendChild($dbalNode);
|
||||
$dbalDom->appendChild($configNode);
|
||||
|
||||
$ret = $dbalDom->schemaValidate(__DIR__."/../../Resources/config/schema/doctrine-1.0.xsd");
|
||||
$this->assertTrue($ret, "DoctrineBundle Dependency Injection XMLSchema did not validate this XML instance.");
|
||||
$found = true;
|
||||
}
|
||||
|
||||
$ormElements = $dom->getElementsByTagNameNS("http://symfony.com/schema/dic/doctrine", "config");
|
||||
$ormElements = $dom->getElementsByTagNameNS($xmlns, 'orm');
|
||||
if ($ormElements->length) {
|
||||
$ormDom = new \DOMDocument('1.0', 'UTF-8');
|
||||
$ormNode = $ormDom->importNode($ormElements->item(0));
|
||||
$ormDom->appendChild($ormNode);
|
||||
$configNode = $ormDom->createElementNS($xmlns, 'config');
|
||||
$configNode->appendChild($ormNode);
|
||||
$ormDom->appendChild($configNode);
|
||||
|
||||
$ret = $ormDom->schemaValidate(__DIR__."/../../Resources/config/schema/doctrine-1.0.xsd");
|
||||
$this->assertTrue($ret, "DoctrineBundle Dependency Injection XMLSchema did not validate this XML instance.");
|
||||
|
Reference in New Issue
Block a user