TreeBuilderTest.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. namespace Symfony\Tests\Component\Config\Definition\Builder;
  3. use Symfony\Component\Config\Definition\Builder\TreeBuilder;
  4. require __DIR__.'/../../Fixtures/Builder/NodeBuilder.php';
  5. require __DIR__.'/../../Fixtures/Builder/BarNodeDefinition.php';
  6. require __DIR__.'/../../Fixtures/Builder/VariableNodeDefinition.php';
  7. class TreeBuilderTest extends \PHPUnit_Framework_TestCase
  8. {
  9. public function testUsingACustomNodeBuilder()
  10. {
  11. $builder = new TreeBuilder();
  12. $root = $builder->root('custom', 'array', new NodeBuilder());
  13. $nodeBuilder = $root->children();
  14. $this->assertEquals(get_class($nodeBuilder), 'Symfony\Tests\Component\Config\Definition\Builder\NodeBuilder');
  15. $nodeBuilder = $nodeBuilder->arrayNode('deeper')->children();
  16. $this->assertEquals(get_class($nodeBuilder), 'Symfony\Tests\Component\Config\Definition\Builder\NodeBuilder');
  17. }
  18. public function testOverrideABuiltInNodeType()
  19. {
  20. $builder = new TreeBuilder();
  21. $root = $builder->root('override', 'array', new NodeBuilder());
  22. $definition = $root->children()->variableNode('variable');
  23. $this->assertEquals(get_class($definition), 'Symfony\Tests\Component\Config\Definition\Builder\VariableNodeDefinition');
  24. }
  25. public function testAddANodeType()
  26. {
  27. $builder = new TreeBuilder();
  28. $root = $builder->root('override', 'array', new NodeBuilder());
  29. $definition = $root->children()->barNode('variable');
  30. $this->assertEquals(get_class($definition), 'Symfony\Tests\Component\Config\Definition\Builder\BarNodeDefinition');
  31. }
  32. public function testCreateABuiltInNodeTypeWithACustomNodeBuilder()
  33. {
  34. $builder = new TreeBuilder();
  35. $root = $builder->root('builtin', 'array', new NodeBuilder());
  36. $definition = $root->children()->booleanNode('boolean');
  37. $this->assertEquals(get_class($definition), 'Symfony\Component\Config\Definition\Builder\BooleanNodeDefinition');
  38. }
  39. public function testPrototypedArrayNodeUseTheCustomNodeBuilder()
  40. {
  41. $builder = new TreeBuilder();
  42. $root = $builder->root('override', 'array', new NodeBuilder());
  43. $root->prototype('bar')->end();
  44. }
  45. }