4
4
5
5
use Iterator ;
6
6
use PHPStan \Type \Symfony \ExtensionTestCase ;
7
- use Symfony \Component \Config \Definition \Builder \TreeBuilder ;
8
7
9
8
final class TreeBuilderTest extends ExtensionTestCase
10
9
{
@@ -14,20 +13,6 @@ final class TreeBuilderTest extends ExtensionTestCase
14
13
*/
15
14
public function testGet (string $ expression , string $ type ): void
16
15
{
17
- $ arrayTreeBuilder = new TreeBuilder ('my_tree ' , 'array ' );
18
- $ arrayRootNode = $ arrayTreeBuilder ->getRootNode ();
19
- $ r = $ arrayRootNode
20
- ->children ()
21
- ->arrayNode ('methods ' )
22
- ->prototype ('scalar ' )
23
- ->validate ()
24
- ->ifNotInArray (['one ' , 'two ' ])
25
- ->thenInvalid ('%s is not a valid method. ' )
26
- ->end ()
27
- ->end ()
28
- ->end ()
29
- ->end ();
30
-
31
16
$ this ->processFile (
32
17
__DIR__ . '/tree_builder.php ' ,
33
18
$ expression ,
@@ -38,7 +23,7 @@ public function testGet(string $expression, string $type): void
38
23
new ReturnParentDynamicReturnTypeExtension ('Symfony\Component\Config\Definition\Builder\NodeBuilder ' , ['end ' ]),
39
24
new ReturnParentDynamicReturnTypeExtension ('Symfony\Component\Config\Definition\Builder\NodeDefinition ' , ['end ' ]),
40
25
new PassParentObjectDynamicReturnTypeExtension ('Symfony\Component\Config\Definition\Builder\NodeBuilder ' , ['arrayNode ' , 'scalarNode ' , 'booleanNode ' , 'integerNode ' , 'floatNode ' , 'enumNode ' , 'variableNode ' ]),
41
- new PassParentObjectDynamicReturnTypeExtension ('Symfony\Component\Config\Definition\Builder\NodeDefinition ' , ['children ' , 'validate ' ]),
26
+ new PassParentObjectDynamicReturnTypeExtension ('Symfony\Component\Config\Definition\Builder\NodeDefinition ' , ['children ' , 'validate ' , ' beforeNormalization ' ]),
42
27
new TreeBuilderGetRootNodeDynamicReturnTypeExtension (),
43
28
],
44
29
[new TreeBuilderDynamicReturnTypeExtension ()]
@@ -153,35 +138,50 @@ public function getProvider(): Iterator
153
138
yield ['
154
139
$arrayRootNode
155
140
->children()
156
- ->arrayNode("methods")
157
- ->prototype("scalar")
158
- ->defaultNull()
159
- ->end()
160
- ->end()
161
- ->end()
141
+ ->arrayNode("methods")
142
+ ->prototype("scalar")
143
+ ->defaultNull()
144
+ ->end()
145
+ ->end()
146
+ ->end()
162
147
' , 'Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition ' ];
163
148
yield ['
164
149
$arrayRootNode
165
150
->children()
166
- ->arrayNode("methods")
167
- ->scalarPrototype()
168
- ->defaultNull()
169
- ->end()
170
- ->end()
171
- ->end()
151
+ ->arrayNode("methods")
152
+ ->scalarPrototype()
153
+ ->defaultNull()
154
+ ->end()
155
+ ->end()
156
+ ->end()
172
157
' , 'Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition ' ];
173
158
yield ['
174
159
$arrayRootNode
175
160
->children()
176
- ->arrayNode("methods")
177
- ->prototype("scalar")
178
- ->validate()
179
- ->ifNotInArray(["one", "two"])
180
- ->thenInvalid("%s is not a valid method.")
181
- ->end()
182
- ->end()
183
- ->end()
184
- ->end()
161
+ ->arrayNode("methods")
162
+ ->prototype("scalar")
163
+ ->validate()
164
+ ->ifNotInArray(["one", "two"])
165
+ ->thenInvalid("%s is not a valid method.")
166
+ ->end()
167
+ ->end()
168
+ ->end()
169
+ ->end()
170
+ ' , 'Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition ' ];
171
+ yield ['
172
+ $arrayRootNode
173
+ ->children()
174
+ ->arrayNode("methods")
175
+ ->prototype("array")
176
+ ->beforeNormalization()
177
+ ->ifString()
178
+ ->then(static function ($v) {
179
+ return [$v];
180
+ })
181
+ ->end()
182
+ ->end()
183
+ ->end()
184
+ ->end()
185
185
' , 'Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition ' ];
186
186
187
187
yield ['$variableRootNode ' , 'Symfony\Component\Config\Definition\Builder\VariableNodeDefinition ' ];
0 commit comments