1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- <?php
- namespace Symfony\Tests\Component\Config\Definition\Builder;
- use Symfony\Tests\Component\Config\Definition\Builder\NodeBuilder as CustomNodeBuilder;
- use Symfony\Component\Config\Definition\Builder\TreeBuilder;
- use Symfony\Component\Config\Definition\Builder\NodeBuilder;
- require __DIR__.'/../../Fixtures/Builder/NodeBuilder.php';
- require __DIR__.'/../../Fixtures/Builder/BarNodeDefinition.php';
- require __DIR__.'/../../Fixtures/Builder/VariableNodeDefinition.php';
- class TreeBuilderTest extends \PHPUnit_Framework_TestCase
- {
- public function testUsingACustomNodeBuilder()
- {
- $builder = new TreeBuilder();
- $root = $builder->root('custom', 'array', new CustomNodeBuilder());
- $nodeBuilder = $root->children();
- $this->assertEquals(get_class($nodeBuilder), 'Symfony\Tests\Component\Config\Definition\Builder\NodeBuilder');
- $nodeBuilder = $nodeBuilder->arrayNode('deeper')->children();
- $this->assertEquals(get_class($nodeBuilder), 'Symfony\Tests\Component\Config\Definition\Builder\NodeBuilder');
- }
- public function testOverrideABuiltInNodeType()
- {
- $builder = new TreeBuilder();
- $root = $builder->root('override', 'array', new CustomNodeBuilder());
- $definition = $root->children()->variableNode('variable');
- $this->assertEquals(get_class($definition), 'Symfony\Tests\Component\Config\Definition\Builder\VariableNodeDefinition');
- }
- public function testAddANodeType()
- {
- $builder = new TreeBuilder();
- $root = $builder->root('override', 'array', new CustomNodeBuilder());
- $definition = $root->children()->barNode('variable');
- $this->assertEquals(get_class($definition), 'Symfony\Tests\Component\Config\Definition\Builder\BarNodeDefinition');
- }
- public function testCreateABuiltInNodeTypeWithACustomNodeBuilder()
- {
- $builder = new TreeBuilder();
- $root = $builder->root('builtin', 'array', new CustomNodeBuilder());
- $definition = $root->children()->booleanNode('boolean');
- $this->assertEquals(get_class($definition), 'Symfony\Component\Config\Definition\Builder\BooleanNodeDefinition');
- }
- public function testPrototypedArrayNodeUseTheCustomNodeBuilder()
- {
- $builder = new TreeBuilder();
- $root = $builder->root('override', 'array', new CustomNodeBuilder());
- $root->prototype('bar')->end();
- }
- public function testAnExtendedNodeBuilderGetsPropagatedToTheChildren()
- {
- $builder = new TreeBuilder();
- $builder->root('propagation')
- ->children()
- ->setNodeClass('extended', 'Symfony\Tests\Component\Config\Definition\Builder\VariableNodeDefinition')
- ->node('foo', 'extended')->end()
- ->arrayNode('child')
- ->children()
- ->node('foo', 'extended')
- ->end()
- ->end()
- ->end()
- ->end();
- }
- }
|