vendor/symfony/src/Symfony/Bundle/DoctrineBundle/Tests/DependencyInjection/AbstractDoctrineExtensionTest.php
author ymh <ymh.work@gmail.com>
Sat, 24 Sep 2011 15:40:41 +0200
changeset 0 7f95f8617b0b
permissions -rwxr-xr-x
first commit
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
<?php
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
/*
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
 * This file is part of the Symfony package.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
 *
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
 * (c) Fabien Potencier <fabien@symfony.com>
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
 *
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
 * For the full copyright and license information, please view the LICENSE
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
 * file that was distributed with this source code.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
 */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
namespace Symfony\Bundle\DoctrineBundle\Tests\DependencyInjection;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
use Symfony\Bundle\DoctrineBundle\Tests\TestCase;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
use Symfony\Bundle\DoctrineBundle\DependencyInjection\DoctrineExtension;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
use Symfony\Component\DependencyInjection\ContainerBuilder;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
use Symfony\Component\DependencyInjection\Reference;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
use Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
use Symfony\Component\Config\FileLocator;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
abstract class AbstractDoctrineExtensionTest extends TestCase
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
{
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
    abstract protected function loadFromFile(ContainerBuilder $container, $file);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
    public function testDbalOverrideDefaultConnection()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
        $container = $this->getContainer();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
        $loader = new DoctrineExtension();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
        $loader->load(array(array(), array('dbal' => array('default_connection' => 'foo')), array()), $container);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
        // doctrine.dbal.default_connection
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
        $this->assertEquals('%doctrine.default_connection%', $container->getDefinition('doctrine')->getArgument(3), '->load() overrides existing configuration options');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
        $this->assertEquals('foo', $container->getParameter('doctrine.default_connection'), '->load() overrides existing configuration options');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
    public function testDbalLoad()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
        $container = $this->getContainer();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
        $loader = new DoctrineExtension();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
        $loader->load(array(array('dbal' => array('connections' => array('default' => array('password' => 'foo')))), array(), array('dbal' => array('default_connection' => 'foo')), array()), $container);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
        $config = $container->getDefinition('doctrine.dbal.default_connection')->getArgument(0);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
        $this->assertEquals('foo', $config['password']);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
        $this->assertEquals('root', $config['user']);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
    public function testDbalLoadFromXmlMultipleConnections()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
        $container = $this->getContainer();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
        $loader = new DoctrineExtension();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
        $container->registerExtension($loader);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
        $loadXml = new XmlFileLoader($container, new FileLocator(__DIR__.'/Fixtures/config/xml'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
        $loadXml->load('dbal_service_multiple_connections.xml');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
        $loader->load(array(array()), $container);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
        $this->compileContainer($container);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
        // doctrine.dbal.mysql_connection
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
        $config = $container->getDefinition('doctrine.dbal.mysql_connection')->getArgument(0);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
        $this->assertEquals('mysql_s3cr3t', $config['password']);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
        $this->assertEquals('mysql_user', $config['user']);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
        $this->assertEquals('mysql_db', $config['dbname']);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
        $this->assertEquals('/path/to/mysqld.sock', $config['unix_socket']);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
        // doctrine.dbal.sqlite_connection
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
        $config = $container->getDefinition('doctrine.dbal.sqlite_connection')->getArgument(0);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
        $this->assertArrayHasKey('memory', $config);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
        // doctrine.dbal.oci8_connection
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
        $config = $container->getDefinition('doctrine.dbal.oci_connection')->getArgument(0);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
        $this->assertArrayHasKey('charset', $config);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
    public function testDbalLoadFromXmlSingleConnections()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
        $container = $this->getContainer();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
        $loader = new DoctrineExtension();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
        $container->registerExtension($loader);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
        $loadXml = new XmlFileLoader($container, new FileLocator(__DIR__.'/Fixtures/config/xml'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
        $loadXml->load('dbal_service_single_connection.xml');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
        $loader->load(array(array()), $container);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
        $this->compileContainer($container);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    95
        // doctrine.dbal.mysql_connection
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    96
        $config = $container->getDefinition('doctrine.dbal.default_connection')->getArgument(0);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    97
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    98
        $this->assertEquals('mysql_s3cr3t', $config['password']);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
        $this->assertEquals('mysql_user', $config['user']);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   100
        $this->assertEquals('mysql_db', $config['dbname']);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   101
        $this->assertEquals('/path/to/mysqld.sock', $config['unix_socket']);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   102
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   103
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   104
    public function testDependencyInjectionConfigurationDefaults()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   105
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   106
        $container = $this->getContainer();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   107
        $loader = new DoctrineExtension();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   108
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   109
        $loader->load(array(array('dbal' => array('connections' => array('default' => array('password' => 'foo'))), 'orm' => array('default_entity_manager' => 'default', 'entity_managers' => array('default' => array('mappings' => array('YamlBundle' => array())))))), $container);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   110
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   111
        $this->assertFalse($container->getParameter('doctrine.orm.auto_generate_proxy_classes'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   112
        $this->assertEquals('Doctrine\ORM\Configuration', $container->getParameter('doctrine.orm.configuration.class'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   113
        $this->assertEquals('Doctrine\ORM\EntityManager', $container->getParameter('doctrine.orm.entity_manager.class'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   114
        $this->assertEquals('Proxies', $container->getParameter('doctrine.orm.proxy_namespace'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   115
        $this->assertEquals('Doctrine\Common\Cache\ArrayCache', $container->getParameter('doctrine.orm.cache.array.class'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   116
        $this->assertEquals('Doctrine\Common\Cache\ApcCache', $container->getParameter('doctrine.orm.cache.apc.class'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   117
        $this->assertEquals('Doctrine\Common\Cache\MemcacheCache', $container->getParameter('doctrine.orm.cache.memcache.class'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   118
        $this->assertEquals('localhost', $container->getParameter('doctrine.orm.cache.memcache_host'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   119
        $this->assertEquals('11211', $container->getParameter('doctrine.orm.cache.memcache_port'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   120
        $this->assertEquals('Memcache', $container->getParameter('doctrine.orm.cache.memcache_instance.class'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   121
        $this->assertEquals('Doctrine\Common\Cache\XcacheCache', $container->getParameter('doctrine.orm.cache.xcache.class'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   122
        $this->assertEquals('Doctrine\ORM\Mapping\Driver\DriverChain', $container->getParameter('doctrine.orm.metadata.driver_chain.class'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   123
        $this->assertEquals('Doctrine\ORM\Mapping\Driver\AnnotationDriver', $container->getParameter('doctrine.orm.metadata.annotation.class'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   124
        $this->assertEquals('Symfony\Bridge\Doctrine\Mapping\Driver\XmlDriver', $container->getParameter('doctrine.orm.metadata.xml.class'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   125
        $this->assertEquals('Symfony\Bridge\Doctrine\Mapping\Driver\YamlDriver', $container->getParameter('doctrine.orm.metadata.yml.class'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   126
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   127
        $config = array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   128
            'proxy_namespace' => 'MyProxies',
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   129
            'auto_generate_proxy_classes' => true,
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   130
            'default_entity_manager' => 'default',
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   131
            'entity_managers' => array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   132
                'default' => array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   133
                    'mappings' => array('YamlBundle' => array()),
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   134
                    )
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   135
                )
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   136
        );
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   137
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   138
        $container = $this->getContainer();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   139
        $loader->load(array(array('dbal' => array('connections' => array('default' => array('password' => 'foo'))), 'orm' => $config)), $container);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   140
        $this->compileContainer($container);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   141
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   142
        $definition = $container->getDefinition('doctrine.dbal.default_connection');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   143
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   144
        $args = $definition->getArguments();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   145
        $this->assertEquals('pdo_mysql', $args[0]['driver']);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   146
        $this->assertEquals('localhost', $args[0]['host']);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   147
        $this->assertEquals('root', $args[0]['user']);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   148
        $this->assertEquals('doctrine.dbal.default_connection.configuration', (string) $args[1]);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   149
        $this->assertEquals('doctrine.dbal.default_connection.event_manager', (string) $args[2]);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   150
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   151
        $definition = $container->getDefinition('doctrine.orm.default_entity_manager');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   152
        $this->assertEquals('%doctrine.orm.entity_manager.class%', $definition->getClass());
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   153
        $this->assertEquals('%doctrine.orm.entity_manager.class%', $definition->getFactoryClass());
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   154
        $this->assertEquals('create', $definition->getFactoryMethod());
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   155
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   156
        $this->assertEquals(array('default' => 'doctrine.orm.default_entity_manager'), $container->getParameter('doctrine.entity_managers'), "Set of the existing EntityManagers names is incorrect.");
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   157
        $this->assertEquals('%doctrine.entity_managers%', $container->getDefinition('doctrine')->getArgument(2), "Set of the existing EntityManagers names is incorrect.");
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   158
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   159
        $arguments = $definition->getArguments();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   160
        $this->assertInstanceOf('Symfony\Component\DependencyInjection\Reference', $arguments[0]);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   161
        $this->assertEquals('doctrine.dbal.default_connection', (string) $arguments[0]);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   162
        $this->assertInstanceOf('Symfony\Component\DependencyInjection\Reference', $arguments[1]);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   163
        $this->assertEquals('doctrine.orm.default_configuration', (string) $arguments[1]);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   164
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   165
        $definition = $container->getDefinition('doctrine.orm.default_configuration');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   166
        $calls = array_values($definition->getMethodCalls());
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   167
        $this->assertEquals(array('YamlBundle' => 'Fixtures\Bundles\YamlBundle\Entity'), $calls[0][1][0]);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   168
        $this->assertEquals('doctrine.orm.default_metadata_cache', (string) $calls[1][1][0]);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   169
        $this->assertEquals('doctrine.orm.default_query_cache', (string) $calls[2][1][0]);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   170
        $this->assertEquals('doctrine.orm.default_result_cache', (string) $calls[3][1][0]);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   171
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   172
        $definition = $container->getDefinition('doctrine.orm.default_metadata_cache');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   173
        $this->assertEquals('%doctrine.orm.cache.array.class%', $definition->getClass());
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   174
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   175
        $definition = $container->getDefinition('doctrine.orm.default_query_cache');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   176
        $this->assertEquals('%doctrine.orm.cache.array.class%', $definition->getClass());
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   177
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   178
        $definition = $container->getDefinition('doctrine.orm.default_result_cache');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   179
        $this->assertEquals('%doctrine.orm.cache.array.class%', $definition->getClass());
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   180
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   181
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   182
    public function testSingleEntityManagerConfiguration()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   183
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   184
        $container = $this->getContainer();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   185
        $loader = new DoctrineExtension();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   186
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   187
        $loader->load(array(array('dbal' => array('connections' => array('default' => array('password' => 'foo'))), 'orm' => array('default_entity_manager' => 'default', 'entity_managers' => array('default' => array('mappings' => array('YamlBundle' => array())))))), $container);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   188
        $this->compileContainer($container);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   189
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   190
        $definition = $container->getDefinition('doctrine.dbal.default_connection');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   191
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   192
        $definition = $container->getDefinition('doctrine.orm.default_entity_manager');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   193
        $this->assertEquals('%doctrine.orm.entity_manager.class%', $definition->getClass());
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   194
        $this->assertEquals('%doctrine.orm.entity_manager.class%', $definition->getFactoryClass());
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   195
        $this->assertEquals('create', $definition->getFactoryMethod());
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   196
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   197
        $this->assertDICConstructorArguments($definition, array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   198
            new Reference('doctrine.dbal.default_connection'), new Reference('doctrine.orm.default_configuration')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   199
        ));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   200
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   201
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   202
    public function testLoadSimpleSingleConnection()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   203
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   204
        $container = $this->getContainer();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   205
        $loader = new DoctrineExtension();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   206
        $container->registerExtension($loader);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   207
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   208
        $this->loadFromFile($container, 'orm_service_simple_single_entity_manager');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   209
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   210
        $this->compileContainer($container);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   211
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   212
        $definition = $container->getDefinition('doctrine.dbal.default_connection');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   213
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   214
        $this->assertDICConstructorArguments($definition, array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   215
            array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   216
                'dbname' => 'db',
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   217
                'host' => 'localhost',
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   218
                'port' => null,
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   219
                'user' => 'root',
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   220
                'password' => null,
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   221
                'driver' => 'pdo_mysql',
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   222
                'logging' => false,
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   223
                'driverOptions' => array(),
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   224
            ),
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   225
            new Reference('doctrine.dbal.default_connection.configuration'),
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   226
            new Reference('doctrine.dbal.default_connection.event_manager'),
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   227
            array(),
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   228
        ));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   229
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   230
        $definition = $container->getDefinition('doctrine.orm.default_entity_manager');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   231
        $this->assertEquals('%doctrine.orm.entity_manager.class%', $definition->getClass());
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   232
        $this->assertEquals('%doctrine.orm.entity_manager.class%', $definition->getFactoryClass());
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   233
        $this->assertEquals('create', $definition->getFactoryMethod());
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   234
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   235
        $this->assertDICConstructorArguments($definition, array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   236
            new Reference('doctrine.dbal.default_connection'), new Reference('doctrine.orm.default_configuration')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   237
        ));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   238
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   239
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   240
    public function testLoadSingleConnection()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   241
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   242
        $container = $this->getContainer();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   243
        $loader = new DoctrineExtension();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   244
        $container->registerExtension($loader);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   245
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   246
        $this->loadFromFile($container, 'orm_service_single_entity_manager');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   247
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   248
        $this->compileContainer($container);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   249
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   250
        $definition = $container->getDefinition('doctrine.dbal.default_connection');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   251
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   252
        $this->assertDICConstructorArguments($definition, array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   253
            array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   254
                'host' => 'localhost',
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   255
                'driver' => 'pdo_sqlite',
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   256
                'driverOptions' => array(),
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   257
                'user' => 'sqlite_user',
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   258
                'port' => null,
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   259
                'password' => 'sqlite_s3cr3t',
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   260
                'dbname' => 'sqlite_db',
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   261
                'memory' => true,
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   262
                'logging' => false,
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   263
            ),
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   264
            new Reference('doctrine.dbal.default_connection.configuration'),
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   265
            new Reference('doctrine.dbal.default_connection.event_manager'),
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   266
            array(),
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   267
        ));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   268
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   269
        $definition = $container->getDefinition('doctrine.orm.default_entity_manager');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   270
        $this->assertEquals('%doctrine.orm.entity_manager.class%', $definition->getClass());
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   271
        $this->assertEquals('%doctrine.orm.entity_manager.class%', $definition->getFactoryClass());
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   272
        $this->assertEquals('create', $definition->getFactoryMethod());
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   273
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   274
        $this->assertDICConstructorArguments($definition, array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   275
            new Reference('doctrine.dbal.default_connection'), new Reference('doctrine.orm.default_configuration')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   276
        ));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   277
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   278
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   279
    public function testLoadMultipleConnections()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   280
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   281
        $container = $this->getContainer();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   282
        $loader = new DoctrineExtension();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   283
        $container->registerExtension($loader);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   284
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   285
        $this->loadFromFile($container, 'orm_service_multiple_entity_managers');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   286
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   287
        $this->compileContainer($container);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   288
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   289
        $definition = $container->getDefinition('doctrine.dbal.conn1_connection');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   290
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   291
        $args = $definition->getArguments();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   292
        $this->assertEquals('pdo_sqlite', $args[0]['driver']);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   293
        $this->assertEquals('localhost', $args[0]['host']);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   294
        $this->assertEquals('sqlite_user', $args[0]['user']);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   295
        $this->assertEquals('doctrine.dbal.conn1_connection.configuration', (string) $args[1]);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   296
        $this->assertEquals('doctrine.dbal.conn1_connection.event_manager', (string) $args[2]);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   297
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   298
        $this->assertEquals('doctrine.orm.em2_entity_manager', (string) $container->getAlias('doctrine.orm.entity_manager'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   299
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   300
        $definition = $container->getDefinition('doctrine.orm.em1_entity_manager');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   301
        $this->assertEquals('%doctrine.orm.entity_manager.class%', $definition->getClass());
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   302
        $this->assertEquals('%doctrine.orm.entity_manager.class%', $definition->getFactoryClass());
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   303
        $this->assertEquals('create', $definition->getFactoryMethod());
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   304
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   305
        $arguments = $definition->getArguments();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   306
        $this->assertInstanceOf('Symfony\Component\DependencyInjection\Reference', $arguments[0]);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   307
        $this->assertEquals('doctrine.dbal.conn1_connection', (string) $arguments[0]);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   308
        $this->assertInstanceOf('Symfony\Component\DependencyInjection\Reference', $arguments[1]);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   309
        $this->assertEquals('doctrine.orm.em1_configuration', (string) $arguments[1]);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   310
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   311
        $definition = $container->getDefinition('doctrine.dbal.conn2_connection');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   312
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   313
        $args = $definition->getArguments();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   314
        $this->assertEquals('pdo_sqlite', $args[0]['driver']);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   315
        $this->assertEquals('localhost', $args[0]['host']);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   316
        $this->assertEquals('sqlite_user', $args[0]['user']);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   317
        $this->assertEquals('doctrine.dbal.conn2_connection.configuration', (string) $args[1]);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   318
        $this->assertEquals('doctrine.dbal.conn2_connection.event_manager', (string) $args[2]);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   319
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   320
        $definition = $container->getDefinition('doctrine.orm.em2_entity_manager');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   321
        $this->assertEquals('%doctrine.orm.entity_manager.class%', $definition->getClass());
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   322
        $this->assertEquals('%doctrine.orm.entity_manager.class%', $definition->getFactoryClass());
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   323
        $this->assertEquals('create', $definition->getFactoryMethod());
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   324
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   325
        $arguments = $definition->getArguments();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   326
        $this->assertInstanceOf('Symfony\Component\DependencyInjection\Reference', $arguments[0]);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   327
        $this->assertEquals('doctrine.dbal.conn2_connection', (string) $arguments[0]);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   328
        $this->assertInstanceOf('Symfony\Component\DependencyInjection\Reference', $arguments[1]);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   329
        $this->assertEquals('doctrine.orm.em2_configuration', (string) $arguments[1]);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   330
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   331
        $definition = $container->getDefinition('doctrine.orm.em1_metadata_cache');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   332
        $this->assertEquals('%doctrine.orm.cache.xcache.class%', $definition->getClass());
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   333
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   334
        $definition = $container->getDefinition('doctrine.orm.em1_query_cache');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   335
        $this->assertEquals('%doctrine.orm.cache.array.class%', $definition->getClass());
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   336
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   337
        $definition = $container->getDefinition('doctrine.orm.em1_result_cache');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   338
        $this->assertEquals('%doctrine.orm.cache.array.class%', $definition->getClass());
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   339
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   340
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   341
    public function testBundleEntityAliases()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   342
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   343
        $container = $this->getContainer();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   344
        $loader = new DoctrineExtension();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   345
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   346
        $config = $this->getConnectionConfig();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   347
        $config['orm'] = array('default_entity_manager' => 'default', 'entity_managers' => array('default' => array('mappings' => array('YamlBundle' => array()))));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   348
        $loader->load(array($config), $container);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   349
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   350
        $definition = $container->getDefinition('doctrine.orm.default_configuration');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   351
        $this->assertDICDefinitionMethodCallOnce($definition, 'setEntityNamespaces',
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   352
            array(array('YamlBundle' => 'Fixtures\Bundles\YamlBundle\Entity'))
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   353
        );
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   354
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   355
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   356
    public function testOverwriteEntityAliases()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   357
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   358
        $container = $this->getContainer();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   359
        $loader = new DoctrineExtension();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   360
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   361
        $config = $this->getConnectionConfig();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   362
        $config['orm'] = array('default_entity_manager' => 'default', 'entity_managers' => array('default' => array('mappings' => array('YamlBundle' => array('alias' => 'yml')))));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   363
        $loader->load(array($config), $container);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   364
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   365
        $definition = $container->getDefinition('doctrine.orm.default_configuration');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   366
        $this->assertDICDefinitionMethodCallOnce($definition, 'setEntityNamespaces',
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   367
            array(array('yml' => 'Fixtures\Bundles\YamlBundle\Entity'))
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   368
        );
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   369
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   370
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   371
    public function testYamlBundleMappingDetection()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   372
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   373
        $container = $this->getContainer('YamlBundle');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   374
        $loader = new DoctrineExtension();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   375
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   376
        $config = $this->getConnectionConfig();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   377
        $config['orm'] = array('default_entity_manager' => 'default', 'entity_managers' => array('default' => array('mappings' => array('YamlBundle' => array()))));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   378
        $loader->load(array($config), $container);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   379
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   380
        $definition = $container->getDefinition('doctrine.orm.default_metadata_driver');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   381
        $this->assertDICDefinitionMethodCallOnce($definition, 'addDriver', array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   382
            new Reference('doctrine.orm.default_yml_metadata_driver'),
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   383
            'Fixtures\Bundles\YamlBundle\Entity'
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   384
        ));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   385
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   386
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   387
    public function testXmlBundleMappingDetection()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   388
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   389
        $container = $this->getContainer('XmlBundle');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   390
        $loader = new DoctrineExtension();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   391
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   392
        $config = $this->getConnectionConfig();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   393
        $config['orm'] = array('default_entity_manager' => 'default', 'entity_managers' => array('default' => array('mappings' => array('XmlBundle' => array()))));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   394
        $loader->load(array($config), $container);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   395
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   396
        $definition = $container->getDefinition('doctrine.orm.default_metadata_driver');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   397
        $this->assertDICDefinitionMethodCallOnce($definition, 'addDriver', array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   398
            new Reference('doctrine.orm.default_xml_metadata_driver'),
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   399
            'Fixtures\Bundles\XmlBundle\Entity'
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   400
        ));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   401
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   402
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   403
    public function testAnnotationsBundleMappingDetection()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   404
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   405
        $container = $this->getContainer('AnnotationsBundle');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   406
        $loader = new DoctrineExtension();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   407
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   408
        $config = $this->getConnectionConfig();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   409
        $config['orm'] = array('default_entity_manager' => 'default', 'entity_managers' => array('default' => array('mappings' => array('AnnotationsBundle' => array()))));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   410
        $loader->load(array($config), $container);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   411
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   412
        $definition = $container->getDefinition('doctrine.orm.default_metadata_driver');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   413
        $this->assertDICDefinitionMethodCallOnce($definition, 'addDriver', array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   414
            new Reference('doctrine.orm.default_annotation_metadata_driver'),
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   415
            'Fixtures\Bundles\AnnotationsBundle\Entity'
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   416
        ));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   417
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   418
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   419
    public function testOrmMergeConfigs()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   420
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   421
        $container = $this->getContainer(array('XmlBundle', 'AnnotationsBundle'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   422
        $loader = new DoctrineExtension();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   423
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   424
        $config1 = $this->getConnectionConfig();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   425
        $config1['orm'] = array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   426
            'auto_generate_proxy_classes' => true,
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   427
            'default_entity_manager' => 'default',
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   428
            'entity_managers' => array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   429
                'default' => array('mappings' => array('AnnotationsBundle' => array()))
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   430
        ));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   431
        $config2 = $this->getConnectionConfig();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   432
        $config2['orm'] = array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   433
            'auto_generate_proxy_classes' => false,
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   434
            'default_entity_manager' => 'default',
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   435
            'entity_managers' => array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   436
                'default' => array('mappings' => array('XmlBundle' => array()))
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   437
        ));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   438
        $loader->load(array($config1, $config2), $container);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   439
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   440
        $definition = $container->getDefinition('doctrine.orm.default_metadata_driver');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   441
        $this->assertDICDefinitionMethodCallAt(0, $definition, 'addDriver', array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   442
            new Reference('doctrine.orm.default_annotation_metadata_driver'),
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   443
            'Fixtures\Bundles\AnnotationsBundle\Entity'
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   444
        ));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   445
        $this->assertDICDefinitionMethodCallAt(1, $definition, 'addDriver', array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   446
            new Reference('doctrine.orm.default_xml_metadata_driver'),
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   447
            'Fixtures\Bundles\XmlBundle\Entity'
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   448
        ));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   449
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   450
        $configDef = $container->getDefinition('doctrine.orm.default_configuration');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   451
        $this->assertDICDefinitionMethodCallOnce($configDef, 'setAutoGenerateProxyClasses');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   452
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   453
        $calls = $configDef->getMethodCalls();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   454
        foreach ($calls as $call) {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   455
            if ($call[0] == 'setAutoGenerateProxyClasses') {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   456
                $this->assertFalse($container->getParameterBag()->resolveValue($call[1][0]));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   457
                break;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   458
            }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   459
        }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   460
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   461
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   462
    public function testEntityManagerMetadataCacheDriverConfiguration()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   463
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   464
        $container = $this->getContainer();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   465
        $loader = new DoctrineExtension();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   466
        $container->registerExtension($loader);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   467
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   468
        $this->loadFromFile($container, 'orm_service_multiple_entity_managers');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   469
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   470
        $this->compileContainer($container);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   471
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   472
        $definition = $container->getDefinition('doctrine.orm.em1_metadata_cache');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   473
        $this->assertDICDefinitionClass($definition, '%doctrine.orm.cache.xcache.class%');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   474
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   475
        $definition = $container->getDefinition('doctrine.orm.em2_metadata_cache');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   476
        $this->assertDICDefinitionClass($definition, '%doctrine.orm.cache.apc.class%');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   477
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   478
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   479
    public function testEntityManagerMemcacheMetadataCacheDriverConfiguration()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   480
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   481
        $container = $this->getContainer();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   482
        $loader = new DoctrineExtension();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   483
        $container->registerExtension($loader);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   484
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   485
        $this->loadFromFile($container, 'orm_service_simple_single_entity_manager');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   486
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   487
        $this->compileContainer($container);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   488
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   489
        $definition = $container->getDefinition('doctrine.orm.default_metadata_cache');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   490
        $this->assertDICDefinitionClass($definition, 'Doctrine\Common\Cache\MemcacheCache');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   491
        $this->assertDICDefinitionMethodCallOnce($definition, 'setMemcache',
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   492
            array(new Reference('doctrine.orm.default_memcache_instance'))
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   493
        );
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   494
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   495
        $definition = $container->getDefinition('doctrine.orm.default_memcache_instance');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   496
        $this->assertDICDefinitionClass($definition, 'Memcache');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   497
        $this->assertDICDefinitionMethodCallOnce($definition, 'connect', array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   498
            'localhost', '11211'
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   499
        ));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   500
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   501
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   502
    public function testDependencyInjectionImportsOverrideDefaults()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   503
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   504
        $container = $this->getContainer();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   505
        $loader = new DoctrineExtension();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   506
        $container->registerExtension($loader);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   507
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   508
        $this->loadFromFile($container, 'orm_imports');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   509
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   510
        $this->compileContainer($container);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   511
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   512
        $cacheDefinition = $container->getDefinition('doctrine.orm.default_metadata_cache');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   513
        $this->assertEquals('%doctrine.orm.cache.apc.class%', $cacheDefinition->getClass());
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   514
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   515
        $configDefinition = $container->getDefinition('doctrine.orm.default_configuration');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   516
        $this->assertDICDefinitionMethodCallOnce($configDefinition, 'setAutoGenerateProxyClasses', array(true));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   517
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   518
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   519
    public function testSingleEntityManagerMultipleMappingBundleDefinitions()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   520
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   521
        $container = $this->getContainer(array('YamlBundle', 'AnnotationsBundle', 'XmlBundle'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   522
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   523
        $loader = new DoctrineExtension();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   524
        $container->registerExtension($loader);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   525
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   526
        $this->loadFromFile($container, 'orm_single_em_bundle_mappings');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   527
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   528
        $this->compileContainer($container);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   529
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   530
        $definition = $container->getDefinition('doctrine.orm.default_metadata_driver');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   531
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   532
        $this->assertDICDefinitionMethodCallAt(0, $definition, 'addDriver', array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   533
            new Reference('doctrine.orm.default_annotation_metadata_driver'),
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   534
            'Fixtures\Bundles\AnnotationsBundle\Entity'
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   535
        ));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   536
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   537
        $this->assertDICDefinitionMethodCallAt(1, $definition, 'addDriver', array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   538
            new Reference('doctrine.orm.default_yml_metadata_driver'),
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   539
            'Fixtures\Bundles\YamlBundle\Entity'
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   540
        ));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   541
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   542
        $this->assertDICDefinitionMethodCallAt(2, $definition, 'addDriver', array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   543
            new Reference('doctrine.orm.default_xml_metadata_driver'),
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   544
            'Fixtures\Bundles\XmlBundle'
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   545
        ));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   546
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   547
        $annDef = $container->getDefinition('doctrine.orm.default_annotation_metadata_driver');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   548
        $this->assertDICConstructorArguments($annDef, array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   549
            new Reference('doctrine.orm.metadata.annotation_reader'),
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   550
            array(__DIR__ .DIRECTORY_SEPARATOR.'Fixtures'.DIRECTORY_SEPARATOR.'Bundles'.DIRECTORY_SEPARATOR.'AnnotationsBundle'.DIRECTORY_SEPARATOR.'Entity')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   551
        ));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   552
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   553
        $ymlDef = $container->getDefinition('doctrine.orm.default_yml_metadata_driver');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   554
        $this->assertDICConstructorArguments($ymlDef, array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   555
            array(__DIR__ .DIRECTORY_SEPARATOR.'Fixtures'.DIRECTORY_SEPARATOR.'Bundles'.DIRECTORY_SEPARATOR.'YamlBundle'.DIRECTORY_SEPARATOR.'Resources'.DIRECTORY_SEPARATOR.'config'.DIRECTORY_SEPARATOR.'doctrine')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   556
        ));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   557
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   558
        $xmlDef = $container->getDefinition('doctrine.orm.default_xml_metadata_driver');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   559
        $this->assertDICConstructorArguments($xmlDef, array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   560
            array(__DIR__ .DIRECTORY_SEPARATOR.'Fixtures'.DIRECTORY_SEPARATOR.'Bundles'.DIRECTORY_SEPARATOR.'XmlBundle'.DIRECTORY_SEPARATOR.'Resources'.DIRECTORY_SEPARATOR.'config'.DIRECTORY_SEPARATOR.'doctrine')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   561
        ));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   562
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   563
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   564
    public function testMultipleEntityManagersMappingBundleDefinitions()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   565
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   566
        $container = $this->getContainer(array('YamlBundle', 'AnnotationsBundle', 'XmlBundle'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   567
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   568
        $loader = new DoctrineExtension();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   569
        $container->registerExtension($loader);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   570
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   571
        $this->loadFromFile($container, 'orm_multiple_em_bundle_mappings');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   572
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   573
        $this->compileContainer($container);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   574
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   575
        $this->assertEquals(array('em1' => 'doctrine.orm.em1_entity_manager', 'em2' => 'doctrine.orm.em2_entity_manager'), $container->getParameter('doctrine.entity_managers'), "Set of the existing EntityManagers names is incorrect.");
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   576
        $this->assertEquals('%doctrine.entity_managers%', $container->getDefinition('doctrine')->getArgument(2), "Set of the existing EntityManagers names is incorrect.");
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   577
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   578
        $def1 = $container->getDefinition('doctrine.orm.em1_metadata_driver');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   579
        $def2 = $container->getDefinition('doctrine.orm.em2_metadata_driver');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   580
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   581
        $this->assertDICDefinitionMethodCallAt(0, $def1, 'addDriver', array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   582
            new Reference('doctrine.orm.em1_annotation_metadata_driver'),
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   583
            'Fixtures\Bundles\AnnotationsBundle\Entity'
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   584
        ));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   585
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   586
        $this->assertDICDefinitionMethodCallAt(0, $def2, 'addDriver', array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   587
            new Reference('doctrine.orm.em2_yml_metadata_driver'),
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   588
            'Fixtures\Bundles\YamlBundle\Entity'
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   589
        ));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   590
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   591
        $this->assertDICDefinitionMethodCallAt(1, $def2, 'addDriver', array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   592
            new Reference('doctrine.orm.em2_xml_metadata_driver'),
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   593
            'Fixtures\Bundles\XmlBundle'
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   594
        ));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   595
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   596
        $annDef = $container->getDefinition('doctrine.orm.em1_annotation_metadata_driver');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   597
        $this->assertDICConstructorArguments($annDef, array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   598
            new Reference('doctrine.orm.metadata.annotation_reader'),
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   599
            array(__DIR__ .DIRECTORY_SEPARATOR.'Fixtures'.DIRECTORY_SEPARATOR.'Bundles'.DIRECTORY_SEPARATOR.'AnnotationsBundle'.DIRECTORY_SEPARATOR.'Entity')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   600
        ));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   601
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   602
        $ymlDef = $container->getDefinition('doctrine.orm.em2_yml_metadata_driver');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   603
        $this->assertDICConstructorArguments($ymlDef, array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   604
            array(__DIR__ .DIRECTORY_SEPARATOR.'Fixtures'.DIRECTORY_SEPARATOR.'Bundles'.DIRECTORY_SEPARATOR.'YamlBundle'.DIRECTORY_SEPARATOR.'Resources'.DIRECTORY_SEPARATOR.'config'.DIRECTORY_SEPARATOR.'doctrine')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   605
        ));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   606
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   607
        $xmlDef = $container->getDefinition('doctrine.orm.em2_xml_metadata_driver');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   608
        $this->assertDICConstructorArguments($xmlDef, array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   609
            array(__DIR__ .DIRECTORY_SEPARATOR.'Fixtures'.DIRECTORY_SEPARATOR.'Bundles'.DIRECTORY_SEPARATOR.'XmlBundle'.DIRECTORY_SEPARATOR.'Resources'.DIRECTORY_SEPARATOR.'config'.DIRECTORY_SEPARATOR.'doctrine')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   610
        ));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   611
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   612
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   613
    public function testAnnotationsBundleMappingDetectionWithVendorNamespace()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   614
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   615
        $container = $this->getContainer('AnnotationsBundle', 'Vendor');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   616
        $loader = new DoctrineExtension();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   617
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   618
        $config = $this->getConnectionConfig();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   619
        $config['orm'] = array('default_entity_manager' => 'default', 'entity_managers' => array('default' => array('mappings' => array('AnnotationsBundle' => array()))));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   620
        $loader->load(array($config), $container);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   621
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   622
        $calls = $container->getDefinition('doctrine.orm.default_metadata_driver')->getMethodCalls();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   623
        $this->assertEquals('doctrine.orm.default_annotation_metadata_driver', (string) $calls[0][1][0]);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   624
        $this->assertEquals('Fixtures\Bundles\Vendor\AnnotationsBundle\Entity', $calls[0][1][1]);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   625
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   626
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   627
    public function testSetTypes()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   628
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   629
        $container = $this->getContainer(array('YamlBundle'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   630
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   631
        $loader = new DoctrineExtension();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   632
        $container->registerExtension($loader);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   633
        $this->loadFromFile($container, 'dbal_types');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   634
        $this->compileContainer($container);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   635
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   636
        $this->assertEquals(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   637
            array('test' => 'Symfony\Bundle\DoctrineBundle\Tests\DependencyInjection\TestType'),
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   638
            $container->getParameter('doctrine.dbal.connection_factory.types')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   639
        );
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   640
        $this->assertEquals('%doctrine.dbal.connection_factory.types%', $container->getDefinition('doctrine.dbal.connection_factory')->getArgument(0));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   641
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   642
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   643
    public function testSetCustomFunctions()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   644
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   645
        $container = $this->getContainer(array('YamlBundle'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   646
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   647
        $loader = new DoctrineExtension();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   648
        $container->registerExtension($loader);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   649
        $this->loadFromFile($container, 'orm_functions');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   650
        $this->compileContainer($container);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   651
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   652
        $definition = $container->getDefinition('doctrine.orm.default_configuration');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   653
        $this->assertDICDefinitionMethodCallOnce($definition, 'addCustomStringFunction', array('test_string', 'Symfony\Bundle\DoctrineBundle\Tests\DependencyInjection\TestStringFunction'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   654
        $this->assertDICDefinitionMethodCallOnce($definition, 'addCustomNumericFunction', array('test_numeric', 'Symfony\Bundle\DoctrineBundle\Tests\DependencyInjection\TestNumericFunction'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   655
        $this->assertDICDefinitionMethodCallOnce($definition, 'addCustomDatetimeFunction', array('test_datetime', 'Symfony\Bundle\DoctrineBundle\Tests\DependencyInjection\TestDatetimeFunction'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   656
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   657
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   658
    public function testSingleEMSetCustomFunctions()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   659
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   660
        $container = $this->getContainer(array('YamlBundle'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   661
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   662
        $loader = new DoctrineExtension();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   663
        $container->registerExtension($loader);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   664
        $this->loadFromFile($container, 'orm_single_em_dql_functions');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   665
        $this->compileContainer($container);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   666
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   667
        $definition = $container->getDefinition('doctrine.orm.default_configuration');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   668
        $this->assertDICDefinitionMethodCallOnce($definition, 'addCustomStringFunction', array('test_string', 'Symfony\Bundle\DoctrineBundle\Tests\DependencyInjection\TestStringFunction'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   669
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   670
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   671
    public function testAddCustomHydrationMode()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   672
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   673
        $container = $this->getContainer(array('YamlBundle'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   674
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   675
        $loader = new DoctrineExtension();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   676
        $container->registerExtension($loader);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   677
        $this->loadFromFile($container, 'orm_hydration_mode');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   678
        $this->compileContainer($container);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   679
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   680
        $definition = $container->getDefinition('doctrine.orm.default_configuration');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   681
        $this->assertDICDefinitionMethodCallOnce($definition, 'addCustomHydrationMode', array('test_hydrator', 'Symfony\Bundle\DoctrineBundle\Tests\DependencyInjection\TestHydrator'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   682
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   683
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   684
    protected function getContainer($bundles = 'YamlBundle', $vendor = null)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   685
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   686
        $bundles = (array) $bundles;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   687
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   688
        $map = array();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   689
        foreach ($bundles as $bundle) {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   690
            require_once __DIR__.'/Fixtures/Bundles/'.($vendor ? $vendor.'/' : '').$bundle.'/'.$bundle.'.php';
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   691
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   692
            $map[$bundle] = 'Fixtures\\Bundles\\'.($vendor ? $vendor.'\\' : '').$bundle.'\\'.$bundle;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   693
        }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   694
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   695
        return new ContainerBuilder(new ParameterBag(array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   696
            'kernel.debug'       => false,
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   697
            'kernel.bundles'     => $map,
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   698
            'kernel.cache_dir'   => sys_get_temp_dir(),
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   699
            'kernel.environment' => 'test',
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   700
            'kernel.root_dir'    => __DIR__.'/../../../../../' // src dir
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   701
        )));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   702
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   703
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   704
    /**
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   705
     * Assertion on the Class of a DIC Service Definition.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   706
     *
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   707
     * @param \Symfony\Component\DependencyInjection\Definition $definition
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   708
     * @param string $expectedClass
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   709
     */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   710
    protected function assertDICDefinitionClass($definition, $expectedClass)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   711
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   712
        $this->assertEquals($expectedClass, $definition->getClass(), 'Expected Class of the DIC Container Service Definition is wrong.');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   713
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   714
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   715
    protected function assertDICConstructorArguments($definition, $args)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   716
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   717
        $this->assertEquals($args, $definition->getArguments(), "Expected and actual DIC Service constructor arguments of definition '".$definition->getClass()."' don't match.");
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   718
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   719
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   720
    protected function assertDICDefinitionMethodCallAt($pos, $definition, $methodName, array $params = null)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   721
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   722
        $calls = $definition->getMethodCalls();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   723
        if (isset($calls[$pos][0])) {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   724
            $this->assertEquals($methodName, $calls[$pos][0], "Method '".$methodName."' is expected to be called at position $pos.");
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   725
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   726
            if ($params !== null) {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   727
                $this->assertEquals($params, $calls[$pos][1], "Expected parameters to methods '".$methodName."' do not match the actual parameters.");
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   728
            }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   729
        }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   730
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   731
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   732
    /**
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   733
     * Assertion for the DI Container, check if the given definition contains a method call with the given parameters.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   734
     *
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   735
     * @param \Symfony\Component\DependencyInjection\Definition $definition
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   736
     * @param string $methodName
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   737
     * @param array $params
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   738
     * @return void
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   739
     */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   740
    protected function assertDICDefinitionMethodCallOnce($definition, $methodName, array $params = null)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   741
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   742
        $calls = $definition->getMethodCalls();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   743
        $called = false;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   744
        foreach ($calls as $call) {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   745
            if ($call[0] == $methodName) {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   746
                if ($called) {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   747
                    $this->fail("Method '".$methodName."' is expected to be called only once, a second call was registered though.");
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   748
                } else {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   749
                    $called = true;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   750
                    if ($params !== null) {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   751
                        $this->assertEquals($params, $call[1], "Expected parameters to methods '".$methodName."' do not match the actual parameters.");
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   752
                    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   753
                }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   754
            }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   755
        }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   756
        if (!$called) {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   757
            $this->fail("Method '".$methodName."' is expected to be called once, definition does not contain a call though.");
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   758
        }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   759
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   760
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   761
    protected function compileContainer(ContainerBuilder $container)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   762
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   763
        $container->getCompilerPassConfig()->setOptimizationPasses(array(new ResolveDefinitionTemplatesPass()));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   764
        $container->getCompilerPassConfig()->setRemovingPasses(array());
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   765
        $container->compile();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   766
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   767
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   768
    protected function getConnectionConfig()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   769
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   770
        return array('dbal' => array('connections' => array('default' => array('password' => 'foo'))));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   771
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   772
}