/** * {@inheritDoc} */ public function getConfigTreeBuilder() { $treeBuilder = new TreeBuilder(); $rootNode = $treeBuilder->root('stash'); $rootNode ->beforeNormalization() ->ifTrue(function ($v) { return is_array($v) && !array_key_exists('default_cache', $v) && array_key_exists('caches', $v); }) ->then(function ($v) { return Configuration::normalizeDefaultCacheConfig($v); }) ->end() ->beforeNormalization() ->ifTrue(function ($v) { return is_array($v) && !array_key_exists('caches', $v) && !array_key_exists('cache', $v); }) ->then(function ($v) { return Configuration::normalizeCacheConfig($v); }) ->end() ->children() ->scalarNode('default_cache')->end() ->booleanNode('tracking')->end() ->end() ->fixXmlConfig('cache') ->append($this->getCachesNode()) ; return $treeBuilder; }
public function testNormalizeDefaultCacheConfig() { $testData = array('caches' => array('Cache1' => 'TheCacheSettings', 'Cache2' => 'teTheCacheSettingsst', 'Cache3' => 'teTheCacheSettingsst')); $returnedData = Configuration::normalizeDefaultCacheConfig($testData); $this->assertInternalType('array', $returnedData, 'Returns array.'); $this->assertArrayHasKey('default_cache', $returnedData, 'Normalization adds default_cache'); $this->assertEquals('Cache1', $returnedData['default_cache'], 'Normalization sets first cache to default.'); }