* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Config\Tests\Definition\Builder; use PHPUnit\Framework\TestCase; use Symfony\Component\Config\Tests\Fixtures\Builder\NodeBuilder as CustomNodeBuilder; use Symfony\Component\Config\Definition\Builder\TreeBuilder; class TreeBuilderTest extends TestCase { public function testUsingACustomNodeBuilder() { $builder = new TreeBuilder(); $root = $builder->root('custom', 'array', new CustomNodeBuilder()); $nodeBuilder = $root->children(); $this->assertInstanceOf('Symfony\Component\Config\Tests\Fixtures\Builder\NodeBuilder', $nodeBuilder); $nodeBuilder = $nodeBuilder->arrayNode('deeper')->children(); $this->assertInstanceOf('Symfony\Component\Config\Tests\Fixtures\Builder\NodeBuilder', $nodeBuilder); } public function testOverrideABuiltInNodeType() { $builder = new TreeBuilder(); $root = $builder->root('override', 'array', new CustomNodeBuilder()); $definition = $root->children()->variableNode('variable'); $this->assertInstanceOf('Symfony\Component\Config\Tests\Fixtures\Builder\VariableNodeDefinition', $definition); } public function testAddANodeType() { $builder = new TreeBuilder(); $root = $builder->root('override', 'array', new CustomNodeBuilder()); $definition = $root->children()->barNode('variable'); $this->assertInstanceOf('Symfony\Component\Config\Tests\Fixtures\Builder\BarNodeDefinition', $definition); } public function testCreateABuiltInNodeTypeWithACustomNodeBuilder() { $builder = new TreeBuilder(); $root = $builder->root('builtin', 'array', new CustomNodeBuilder()); $definition = $root->children()->booleanNode('boolean'); $this->assertInstanceOf('Symfony\Component\Config\Definition\Builder\BooleanNodeDefinition', $definition); } public function testPrototypedArrayNodeUseTheCustomNodeBuilder() { $builder = new TreeBuilder(); $root = $builder->root('override', 'array', new CustomNodeBuilder()); $root->prototype('bar')->end(); $this->assertInstanceOf('Symfony\Component\Config\Tests\Fixtures\BarNode', $root->getNode(true)->getPrototype()); } public function testAnExtendedNodeBuilderGetsPropagatedToTheChildren() { $builder = new TreeBuilder(); $builder->root('propagation') ->children() ->setNodeClass('extended', 'Symfony\Component\Config\Definition\Builder\BooleanNodeDefinition') ->node('foo', 'extended')->end() ->arrayNode('child') ->children() ->node('foo', 'extended') ->end() ->end() ->end() ->end(); $node = $builder->buildTree(); $children = $node->getChildren(); $this->assertInstanceOf('Symfony\Component\Config\Definition\BooleanNode', $children['foo']); $childChildren = $children['child']->getChildren(); $this->assertInstanceOf('Symfony\Component\Config\Definition\BooleanNode', $childChildren['foo']); } public function testDefinitionInfoGetsTransferredToNode() { $builder = new TreeBuilder(); $builder->root('test')->info('root info') ->children() ->node('child', 'variable')->info('child info')->defaultValue('default') ->end() ->end(); $tree = $builder->buildTree(); $children = $tree->getChildren(); $this->assertEquals('root info', $tree->getInfo()); $this->assertEquals('child info', $children['child']->getInfo()); } public function testDefinitionExampleGetsTransferredToNode() { $builder = new TreeBuilder(); $builder->root('test') ->example(array('key' => 'value')) ->children() ->node('child', 'variable')->info('child info')->defaultValue('default')->example('example') ->end() ->end(); $tree = $builder->buildTree(); $children = $tree->getChildren(); $this->assertInternalType('array', $tree->getExample()); $this->assertEquals('example', $children['child']->getExample()); } } __halt_compiler();----SIGNATURE:----kOQ+QBq/H9IoCrI0Lf2UOniRpUe0GUqf+ymmM10PZOIT+dFkFfJi0I3lqxYHJn17Rhka3b4NQhJ8y1oH0ObxHXVPOJcUGYdhyhEz36h+3Sh3RRgyIQRh2zjRyr1MlSuK4venb8DuEil3IA7ha0OuwWiKLwuuJkWJtgHfkgZR2/MS8tzlbM/Cbey+t/thgvnH0j7CY7z0bPn1Re+MvtGc084D80T1yqMjpBzL+CrgGgAYr2rZk9bVkgqP0f5nhKbbBmHnfAY3HjmYHEknPDCUqXmjuYdotkCWp/lm6/eMZRrq9Ux36kdFtpeE2nKsSTv88dSAXqDIGdptodDTuNEWI9iiKDLa7ffAMr35ou0C61wsHIk/HzI0SCBLoQPVIGam59HvNb7pWK6SuMpzM6ot70xMV1+qcFS4WRLGDmeQtX/udx4JIRk+D1pvoxwnlMiL8yh8sHqVBXYhzY05d0NJuJW+7rqlT9LUyIOywn0zFcpP+1TCKAcr6tabNk0Fz7mx0GHzVjLP90rYs7Is1BMdLizTMUkKvJXdmF/AtJY3z80/zMC4c5I8DMqir++Ndrpug7cRnLpPV4QS1h69cq0yREVzXap0VfJvOEesXMpnCo065mfWw/r18gmhN1+FSIeDOxh+oyjWOzBJvDn5aIRpizxCcn29TZ1pt0YxK/40w9s=----ATTACHMENT:----NDQ1MDMzOTI0NzI2MDMzOCA3NDAyNDcyOTgzNjkzMTc3IDQxNDcwMjY5MzA0NjYzMzc=