public function testPass()
{
$bundle = new WebpackBundle();
$container = new ContainerBuilder();
$extension = $bundle->getContainerExtension();
$fixture_dir = realpath(__DIR__ . '/../../Fixture');
$container->setParameter('kernel.bundles', ['FooBundle' => FooBundle::class, 'BarBundle' => BarBundle::class]);
$container->setParameter('kernel.environment', 'dev');
$container->setParameter('kernel.root_dir', $fixture_dir);
$container->setParameter('kernel.cache_dir', realpath($fixture_dir . '/cache'));
$container->set('filesystem', new Filesystem());
$container->set('templating.finder', $this->getMockBuilder(TemplateFinderInterface::class)->getMock());
$container->set('twig', $this->getMockBuilder(\Twig_Environment::class)->disableOriginalConstructor()->getMock());
$container->set('logger', $this->getMockBuilder(LoggerInterface::class)->getMock());
$container->setDefinition('webpack_extension', (new Definition(CodeBlockProviderInterface::class))->addTag('hostnet_webpack.config_extension'));
$bundle->build($container);
$extension->load(['webpack' => ['node' => ['node_modules_path' => $fixture_dir . '/node_modules'], 'bundles' => ['FooBundle'], 'resolve' => ['alias' => ['foo' => __DIR__, 'bar' => __DIR__ . '/fake']]]], $container);
$container->compile();
$this->assertTrue($container->hasDefinition('hostnet_webpack.bridge.asset_compiler'));
$this->assertTrue($container->hasDefinition('hostnet_webpack.bridge.asset_tracker'));
$this->assertTrue($container->hasDefinition('hostnet_webpack.bridge.config_generator'));
$this->assertTrue($container->hasDefinition('hostnet_webpack.bridge.profiler'));
$method_calls = $container->getDefinition('hostnet_webpack.bridge.config_generator')->getMethodCalls();
$this->assertArraySubset([['addExtension', [new Reference('webpack_extension')]]], $method_calls);
$method_calls = $container->getDefinition('hostnet_webpack.bridge.asset_tracker')->getMethodCalls();
$this->assertEquals([['addPath', [__DIR__]]], $method_calls);
$process_definition = $container->getDefinition('hostnet_webpack.bridge.compiler_process');
self::assertTrue($process_definition->hasMethodCall('setTimeout'));
self::assertEquals(Configuration::DEFAULT_COMPILE_TIMEOUT_SECONDS, $process_definition->getMethodCalls()[0][1][0]);
}