/** * @param Symfony\Component\DependencyInjection\ContainerBuilder $container * @param Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface $parameterBag * @param Symfony\Component\DependencyInjection\Definition $libraryDefinition * @param Symfony\Component\DependencyInjection\Definition $parserDefinition */ public function it_loads_the_configuration($container, $parameterBag, $libraryDefinition, $parserDefinition) { $container->getParameterBag()->shouldBeCalled()->willReturn($parameterBag); $container->hasExtension(Argument::any())->shouldBeCalled()->willReturn(false); $container->addResource(Argument::any())->shouldBeCalled()->willReturn($container); foreach (array('dispatcher', 'metadata.driver', 'metadata.factory', 'metadata.reader', 'parser', 'library', 'parser', 'formatter', 'formatter.markdown', 'formatter.textile', 'validator', 'validator.constraint_validator_factory') as $service) { $container->setDefinition('fabricius.' . $service, Argument::any())->shouldBeCalled(); } $container->setAlias('fabricius', Argument::any())->shouldBeCalled(); $container->getDefinition('fabricius.library')->shouldBeCalled()->willReturn($libraryDefinition); $libraryDefinition->addMethodCall('registerRepository', Argument::that(function ($args) { if ($args[0] !== 'Fabricius\\FabriciusBundle\\ContentItem') { return false; } elseif ($args[1]->getClass() !== 'Fabricius\\Loader\\FileLoader') { return false; } elseif ($args[2]->getClass() !== 'Fabricius\\Storage\\ArrayStorage') { return false; } return true; }))->shouldBeCalled(); $container->getDefinition('fabricius.parser')->shouldBeCalled()->willReturn($parserDefinition); $parserDefinition->addMethodCall('setExcerptDelimiter', array('[MORE]'))->shouldBeCalled(); $config = array('excerpt_delimiter' => '[MORE]', 'formatter' => array('markdown' => array('enabled' => true), 'textile' => array('enabled' => true)), 'repositories' => array('Fabricius\\FabriciusBundle\\ContentItem' => array('loader' => array('file' => array('dir' => __DIR__)), 'storage' => array('array' => array('enabled' => true))))); $this->load(array('fabricius' => $config), $container)->shouldReturn(null); }