Yaffs site version 1.1
[yaffs-website] / vendor / symfony / config / Tests / Definition / Builder / NodeBuilderTest.php
1 <?php
2
3 /*
4  * This file is part of the Symfony package.
5  *
6  * (c) Fabien Potencier <fabien@symfony.com>
7  *
8  * For the full copyright and license information, please view the LICENSE
9  * file that was distributed with this source code.
10  */
11
12 namespace Symfony\Component\Config\Tests\Definition\Builder;
13
14 use PHPUnit\Framework\TestCase;
15 use Symfony\Component\Config\Definition\Builder\NodeBuilder as BaseNodeBuilder;
16 use Symfony\Component\Config\Definition\Builder\VariableNodeDefinition as BaseVariableNodeDefinition;
17
18 class NodeBuilderTest extends TestCase
19 {
20     /**
21      * @expectedException \RuntimeException
22      */
23     public function testThrowsAnExceptionWhenTryingToCreateANonRegisteredNodeType()
24     {
25         $builder = new BaseNodeBuilder();
26         $builder->node('', 'foobar');
27     }
28
29     /**
30      * @expectedException \RuntimeException
31      */
32     public function testThrowsAnExceptionWhenTheNodeClassIsNotFound()
33     {
34         $builder = new BaseNodeBuilder();
35         $builder
36             ->setNodeClass('noclasstype', '\\foo\\bar\\noclass')
37             ->node('', 'noclasstype');
38     }
39
40     public function testAddingANewNodeType()
41     {
42         $class = __NAMESPACE__.'\\SomeNodeDefinition';
43
44         $builder = new BaseNodeBuilder();
45         $node = $builder
46             ->setNodeClass('newtype', $class)
47             ->node('', 'newtype');
48
49         $this->assertInstanceOf($class, $node);
50     }
51
52     public function testOverridingAnExistingNodeType()
53     {
54         $class = __NAMESPACE__.'\\SomeNodeDefinition';
55
56         $builder = new BaseNodeBuilder();
57         $node = $builder
58             ->setNodeClass('variable', $class)
59             ->node('', 'variable');
60
61         $this->assertInstanceOf($class, $node);
62     }
63
64     public function testNodeTypesAreNotCaseSensitive()
65     {
66         $builder = new BaseNodeBuilder();
67
68         $node1 = $builder->node('', 'VaRiAbLe');
69         $node2 = $builder->node('', 'variable');
70
71         $this->assertInstanceOf(get_class($node1), $node2);
72
73         $builder->setNodeClass('CuStOm', __NAMESPACE__.'\\SomeNodeDefinition');
74
75         $node1 = $builder->node('', 'CUSTOM');
76         $node2 = $builder->node('', 'custom');
77
78         $this->assertInstanceOf(get_class($node1), $node2);
79     }
80
81     public function testNumericNodeCreation()
82     {
83         $builder = new BaseNodeBuilder();
84
85         $node = $builder->integerNode('foo')->min(3)->max(5);
86         $this->assertInstanceOf('Symfony\Component\Config\Definition\Builder\IntegerNodeDefinition', $node);
87
88         $node = $builder->floatNode('bar')->min(3.0)->max(5.0);
89         $this->assertInstanceOf('Symfony\Component\Config\Definition\Builder\FloatNodeDefinition', $node);
90     }
91 }
92
93 class SomeNodeDefinition extends BaseVariableNodeDefinition
94 {
95 }