/**
  * @dataProvider parameterProvider
  */
 public function testParameterOverride($option, $parameter, $value)
 {
     $container = new ContainerBuilder();
     $container->setParameter('kernel.debug', false);
     $loader = new DoctrineMongoDBExtension();
     $loader->load(array(array($option => $value)), $container);
     $this->assertEquals($value, $container->getParameter('doctrine_mongodb.odm.' . $parameter));
 }
 public function testFactoriesAreRegistered()
 {
     $container = $this->getContainer();
     $loader = new DoctrineMongoDBExtension();
     $loader->load([['default_database' => 'test_database', 'connections' => ['cn1' => [], 'cn2' => []], 'document_managers' => ['dm1' => ['repository_factory' => 'repository_factory_service', 'persistent_collection_factory' => 'persistent_collection_factory_service']]]], $container);
     $configDm1 = $container->getDefinition('doctrine_mongodb.odm.dm1_configuration');
     $this->assertContains(['setRepositoryFactory', [new Reference('repository_factory_service')]], $configDm1->getMethodCalls());
     $this->assertContains(['setPersistentCollectionFactory', [new Reference('persistent_collection_factory_service')]], $configDm1->getMethodCalls());
 }
 /**
  * @dataProvider getAutomappingConfigurations
  */
 public function testAutomapping(array $documentManagers)
 {
     $container = $this->getContainer(array('YamlBundle', 'XmlBundle'));
     $loader = new DoctrineMongoDBExtension();
     $loader->load(array(array('default_database' => 'test_database', 'connections' => array('cn1' => array(), 'cn2' => array()), 'document_managers' => $documentManagers)), $container);
     $configDm1 = $container->getDefinition('doctrine_mongodb.odm.dm1_configuration');
     $configDm2 = $container->getDefinition('doctrine_mongodb.odm.dm2_configuration');
     $this->assertContains(array('setDocumentNamespaces', array(array('YamlBundle' => 'DoctrineMongoDBBundle\\Tests\\DependencyInjection\\Fixtures\\Bundles\\YamlBundle\\Document'))), $configDm1->getMethodCalls());
     $this->assertContains(array('setDocumentNamespaces', array(array('XmlBundle' => 'DoctrineMongoDBBundle\\Tests\\DependencyInjection\\Fixtures\\Bundles\\XmlBundle\\Document'))), $configDm2->getMethodCalls());
 }
 public function testAnnotationsBundleMappingDetection()
 {
     $container = $this->getContainer('AnnotationsBundle');
     $loader = new DoctrineMongoDBExtension();
     $config = DoctrineMongoDBExtensionTest::buildConfiguration(array('document_managers' => array('default' => array('mappings' => array('AnnotationsBundle' => array())))));
     $loader->load($config, $container);
     $calls = $container->getDefinition('doctrine_mongodb.odm.default_metadata_driver')->getMethodCalls();
     $this->assertEquals('doctrine_mongodb.odm.default_annotation_metadata_driver', (string) $calls[0][1][0]);
     $this->assertEquals('DoctrineMongoDBBundle\\Tests\\DependencyInjection\\Fixtures\\Bundles\\AnnotationsBundle\\Document', $calls[0][1][1]);
 }