eZ\Bundle\EzPublishCoreBundle\Tests\DependencyInjection\Configuration\SiteAccessAware\ConfigurationProcessorTest::testMapConfigClosure PHP Method

testMapConfigClosure() public method

    public function testMapConfigClosure()
    {
        $namespace = 'ez_test';
        $saNodeName = 'foo';
        $container = $this->getMock('Symfony\\Component\\DependencyInjection\\ContainerInterface');
        $processor = new ConfigurationProcessor($container, $namespace, $saNodeName);
        $expectedContextualizer = $processor->getContextualizer();
        $sa1Name = 'sa1';
        $sa2Name = 'sa2';
        $availableSAs = array($sa1Name => true, $sa2Name => true);
        $sa1Config = array('foo' => 'bar', 'hello' => 'world', 'an_integer' => 123, 'a_bool' => true);
        $sa2Config = array('foo' => 'bar2', 'hello' => 'universe', 'an_integer' => 456, 'a_bool' => false);
        $config = array('not_sa_aware' => 'blabla', $saNodeName => array('sa1' => $sa1Config, 'sa2' => $sa2Config));
        $mapperClosure = function (array &$scopeSettings, $currentScope, ContextualizerInterface $contextualizer) use($config, $availableSAs, $saNodeName, $expectedContextualizer) {
            self::assertTrue(isset($availableSAs[$currentScope]));
            self::assertTrue(isset($config[$saNodeName][$currentScope]));
            self::assertSame($config[$saNodeName][$currentScope], $scopeSettings);
            self::assertSame($expectedContextualizer, $contextualizer);
        };
        $processor->mapConfig($config, $mapperClosure);
    }