Skip to content

Commit 3f8f646

Browse files
minor symfony#22414 relax FormPass test assertions (xabbuh)
This PR was merged into the 3.3-dev branch. Discussion ---------- relax FormPass test assertions | Q | A | ------------- | --- | Branch? | master | Bug fix? | no | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | symfony#22404 (comment) | License | MIT | Doc PR | Relying on a precalculated hash makes the test very fragile as the hash value changes with every change we make for some of the DI classes. Commits ------- 9d73317 relax FormPass test assertions
2 parents 46fc0b9 + 9d73317 commit 3f8f646

File tree

2 files changed

+48
-14
lines changed

2 files changed

+48
-14
lines changed

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Compiler/FormPassTest.php

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ public function testAddTaggedGuessers()
166166
/**
167167
* @dataProvider privateTaggedServicesProvider
168168
*/
169-
public function testPrivateTaggedServices($id, $tagName, $argumentKey, $expectedArgument, array $tagAttributes = array())
169+
public function testPrivateTaggedServices($id, $tagName, callable $assertion, array $tagAttributes = array())
170170
{
171171
$formPass = new FormPass();
172172
$container = new ContainerBuilder();
@@ -176,7 +176,7 @@ public function testPrivateTaggedServices($id, $tagName, $argumentKey, $expected
176176

177177
$formPass->process($container);
178178

179-
$this->assertEquals($expectedArgument, $container->getDefinition('form.extension')->getArgument($argumentKey));
179+
$assertion($container);
180180
}
181181

182182
public function privateTaggedServicesProvider()
@@ -185,17 +185,34 @@ public function privateTaggedServicesProvider()
185185
array(
186186
'my.type',
187187
'form.type',
188-
0,
189-
new Reference('service_locator.c35554e29b2a3001b879847fc6a49848'),
188+
function (ContainerBuilder $container) {
189+
$formTypes = $container->getDefinition('form.extension')->getArgument(0);
190+
191+
$this->assertInstanceOf(Reference::class, $formTypes);
192+
193+
$locator = $container->getDefinition((string) $formTypes);
194+
$expectedLocatorMap = array(
195+
'stdClass' => new ServiceClosureArgument(new Reference('my.type')),
196+
);
197+
198+
$this->assertInstanceOf(Definition::class, $locator);
199+
$this->assertEquals($expectedLocatorMap, $locator->getArgument(0));
200+
},
190201
),
191202
array(
192203
'my.type_extension',
193204
'form.type_extension',
194-
1,
195-
array('Symfony\Component\Form\Extension\Core\Type\FormType' => new IteratorArgument(array(new Reference('my.type_extension')))),
205+
function (ContainerBuilder $container) {
206+
$this->assertEquals(
207+
array('Symfony\Component\Form\Extension\Core\Type\FormType' => new IteratorArgument(array(new Reference('my.type_extension')))),
208+
$container->getDefinition('form.extension')->getArgument(1)
209+
);
210+
},
196211
array('extended_type' => 'Symfony\Component\Form\Extension\Core\Type\FormType'),
197212
),
198-
array('my.guesser', 'form.type_guesser', 2, new IteratorArgument(array(new Reference('my.guesser')))),
213+
array('my.guesser', 'form.type_guesser', function (ContainerBuilder $container) {
214+
$this->assertEquals(new IteratorArgument(array(new Reference('my.guesser'))), $container->getDefinition('form.extension')->getArgument(2));
215+
}),
199216
);
200217
}
201218

src/Symfony/Component/Form/Tests/DependencyInjection/FormPassTest.php

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ public function testAddTaggedGuessers()
164164
/**
165165
* @dataProvider privateTaggedServicesProvider
166166
*/
167-
public function testPrivateTaggedServices($id, $tagName, $argumentKey, $expectedArgument, array $tagAttributes = array())
167+
public function testPrivateTaggedServices($id, $tagName, callable $assertion, array $tagAttributes = array())
168168
{
169169
$formPass = new FormPass();
170170
$container = new ContainerBuilder();
@@ -173,7 +173,7 @@ public function testPrivateTaggedServices($id, $tagName, $argumentKey, $expected
173173
$container->register($id, 'stdClass')->setPublic(false)->addTag($tagName, $tagAttributes);
174174
$formPass->process($container);
175175

176-
$this->assertEquals($expectedArgument, $container->getDefinition('form.extension')->getArgument($argumentKey));
176+
$assertion($container);
177177
}
178178

179179
public function privateTaggedServicesProvider()
@@ -182,17 +182,34 @@ public function privateTaggedServicesProvider()
182182
array(
183183
'my.type',
184184
'form.type',
185-
0,
186-
new Reference('service_locator.c35554e29b2a3001b879847fc6a49848'),
185+
function (ContainerBuilder $container) {
186+
$formTypes = $container->getDefinition('form.extension')->getArgument(0);
187+
188+
$this->assertInstanceOf(Reference::class, $formTypes);
189+
190+
$locator = $container->getDefinition((string) $formTypes);
191+
$expectedLocatorMap = array(
192+
'stdClass' => new ServiceClosureArgument(new Reference('my.type')),
193+
);
194+
195+
$this->assertInstanceOf(Definition::class, $locator);
196+
$this->assertEquals($expectedLocatorMap, $locator->getArgument(0));
197+
},
187198
),
188199
array(
189200
'my.type_extension',
190201
'form.type_extension',
191-
1,
192-
array('Symfony\Component\Form\Extension\Core\Type\FormType' => new IteratorArgument(array(new Reference('my.type_extension')))),
202+
function (ContainerBuilder $container) {
203+
$this->assertEquals(
204+
array('Symfony\Component\Form\Extension\Core\Type\FormType' => new IteratorArgument(array(new Reference('my.type_extension')))),
205+
$container->getDefinition('form.extension')->getArgument(1)
206+
);
207+
},
193208
array('extended_type' => 'Symfony\Component\Form\Extension\Core\Type\FormType'),
194209
),
195-
array('my.guesser', 'form.type_guesser', 2, new IteratorArgument(array(new Reference('my.guesser')))),
210+
array('my.guesser', 'form.type_guesser', function (ContainerBuilder $container) {
211+
$this->assertEquals(new IteratorArgument(array(new Reference('my.guesser'))), $container->getDefinition('form.extension')->getArgument(2));
212+
}),
196213
);
197214
}
198215

0 commit comments

Comments
 (0)