Вход Регистрация
Файл: symfony-2.7/src/Symfony/Component/Config/Tests/Definition/Builder/TreeBuilderTest.php
Строк: 195
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace SymfonyComponentConfigTestsDefinitionBuilder;

use 
SymfonyComponentConfigTestsDefinitionBuilderNodeBuilder as CustomNodeBuilder;
use 
SymfonyComponentConfigDefinitionBuilderTreeBuilder;

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->assertInstanceOf('SymfonyComponentConfigTestsDefinitionBuilderNodeBuilder'$nodeBuilder);

        
$nodeBuilder $nodeBuilder->arrayNode('deeper')->children();

        
$this->assertInstanceOf('SymfonyComponentConfigTestsDefinitionBuilderNodeBuilder'$nodeBuilder);
    }

    public function 
testOverrideABuiltInNodeType()
    {
        
$builder = new TreeBuilder();
        
$root $builder->root('override''array', new CustomNodeBuilder());

        
$definition $root->children()->variableNode('variable');

        
$this->assertInstanceOf('SymfonyComponentConfigTestsDefinitionBuilderVariableNodeDefinition'$definition);
    }

    public function 
testAddANodeType()
    {
        
$builder = new TreeBuilder();
        
$root $builder->root('override''array', new CustomNodeBuilder());

        
$definition $root->children()->barNode('variable');

        
$this->assertInstanceOf('SymfonyComponentConfigTestsDefinitionBuilderBarNodeDefinition'$definition);
    }

    public function 
testCreateABuiltInNodeTypeWithACustomNodeBuilder()
    {
        
$builder = new TreeBuilder();
        
$root $builder->root('builtin''array', new CustomNodeBuilder());

        
$definition $root->children()->booleanNode('boolean');

        
$this->assertInstanceOf('SymfonyComponentConfigDefinitionBuilderBooleanNodeDefinition'$definition);
    }

    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''SymfonyComponentConfigTestsDefinitionBuilderVariableNodeDefinition')
                ->
node('foo''extended')->end()
                ->
arrayNode('child')
                    ->
children()
                        ->
node('foo''extended')
                    ->
end()
                ->
end()
            ->
end()
        ->
end();
    }

    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->assertTrue(is_array($tree->getExample()));
        
$this->assertEquals('example'$children['child']->getExample());
    }
}
Онлайн: 0
Реклама