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);
}