<?php
namespace Symfony\Tests\Component\Config\Definition\Builder;
use Symfony\Component\Config\Definition\Builder\NodeBuilder as BaseNodeBuilder;
use Symfony\Component\Config\Definition\Builder\VariableNodeDefinition as BaseVariableNodeDefinition;
class NodeBuilderTest extends \PHPUnit_Framework_TestCase
{
/**
* @expectedException \RuntimeException
*/
public function testThrowsAnExceptionWhenTryingToCreateANonRegisteredNodeType()
$builder = new BaseNodeBuilder();
$builder->node('', 'foobar');
}
public function testThrowsAnExceptionWhenTheNodeClassIsNotFound()
$builder
->setNodeClass('noclasstype', '\\foo\\bar\\noclass')
->node('', 'noclasstype');
public function testAddingANewNodeType()
$class = __NAMESPACE__.'\\SomeNodeDefinition';
$node = $builder
->setNodeClass('newtype', $class)
->node('', 'newtype');
$this->assertEquals(get_class($node), $class);
public function testOverridingAnExistingNodeType()
->setNodeClass('variable', $class)
->node('', 'variable');
public function testNodeTypesAreNotCaseSensitive()
$node1 = $builder->node('', 'VaRiAbLe');
$node2 = $builder->node('', 'variable');
$this->assertEquals(get_class($node1), get_class($node2));
$builder->setNodeClass('CuStOm', __NAMESPACE__.'\\SomeNodeDefinition');
$node1 = $builder->node('', 'CUSTOM');
$node2 = $builder->node('', 'custom');
class SomeNodeDefinition extends BaseVariableNodeDefinition