/**
  * Check if load adds parameters to container as expected.
  *
  * @param array $parameters
  * @param array $expectedConnections
  * @param array $expectedManagers
  *
  * @dataProvider getData
  */
 public function testLoad($parameters, $expectedConnections, $expectedManagers)
 {
     $container = new ContainerBuilder();
     class_exists('testClass') ?: eval('class testClass {}');
     $container->setParameter('kernel.bundles', ['testBundle' => 'testClass']);
     $container->setParameter('kernel.cache_dir', '');
     $container->setParameter('kernel.debug', true);
     $extension = new ONGRElasticsearchExtension();
     $extension->load($parameters, $container);
     if ($parameters['elasticsearch']['managers']['test']['debug']) {
         $reflection = new \ReflectionClass($this);
         $dir = dirname($reflection->getFileName()) . DIRECTORY_SEPARATOR . 'customDir';
         $handler = new Definition('ONGR\\ElasticsearchBundle\\Logger\\Handler\\CollectionHandler', []);
         $logger = new Definition('Monolog\\Logger', ['tracer', [$handler]]);
         $collector = new Definition('ONGR\\ElasticsearchBundle\\DataCollector\\ElasticsearchDataCollector');
         $collector->addMethodCall('setManagers', [new Parameter('es.managers')]);
         $collector->addMethodCall('addLogger', [new Reference('es.logger.trace')]);
         $collector->addTag('data_collector', ['template' => 'ONGRElasticsearchBundle:Profiler:profiler.html.twig', 'id' => 'es']);
         $this->assertEquals($collector, $container->getDefinition('es.collector'));
         $this->assertEquals($logger, $container->getDefinition('es.logger.trace'));
         $this->assertEquals(new DirectoryResource($dir), $container->getResources()[1]);
     }
     $this->assertEquals($expectedConnections, $container->getParameter('es.connections'), 'Incorrect connections parameter.');
     $this->assertEquals($expectedManagers, $container->getParameter('es.managers'), 'Incorrect managers parameter');
     $this->assertTrue($container->hasDefinition('es.metadata_collector'), 'Container should have MetadataCollector definition set.');
 }
 /**
  * Check if load adds parameters to container as expected.
  *
  * @param array $parameters
  * @param array $expectedConnections
  * @param array $expectedManagers
  *
  * @dataProvider getData
  */
 public function testLoad($parameters, $expectedConnections, $expectedManagers)
 {
     $container = new ContainerBuilder();
     class_exists('testClass') ?: eval('class testClass {}');
     $container->setParameter('kernel.bundles', ['testBundle' => 'testClass']);
     $container->setParameter('kernel.cache_dir', '');
     $container->setParameter('kernel.debug', true);
     $extension = new ONGRElasticsearchExtension();
     $extension->load($parameters, $container);
     $this->assertEquals($expectedConnections, $container->getParameter('es.connections'), 'Incorrect connections parameter.');
     $this->assertEquals($expectedManagers, $container->getParameter('es.managers'), 'Incorrect managers parameter');
     $this->assertTrue($container->hasDefinition('es.metadata_collector'), 'Container should have MetadataCollector definition set.');
 }