Skip to content

Commit 181eda9

Browse files
Merge branch '4.3' into 4.4
* 4.3: [FrameworkBundle] Fix wrong returned status code in ConfigDebugCommand [AnnotationCacheWarmer] add RedirectController to annotation cache [DI] add tests loading calls with returns-clone [EventDispatcher] Added tests for aliased events. [DI] Add CSV env var processor tests
2 parents 5bf6437 + 6229f58 commit 181eda9

File tree

1 file changed

+64
-5
lines changed

1 file changed

+64
-5
lines changed

Tests/DependencyInjection/RegisterListenersPassTest.php

Lines changed: 64 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
use Symfony\Component\DependencyInjection\ContainerBuilder;
1717
use Symfony\Component\DependencyInjection\Reference;
1818
use Symfony\Component\EventDispatcher\DependencyInjection\RegisterListenersPass;
19+
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
1920

2021
class RegisterListenersPassTest extends TestCase
2122
{
@@ -37,10 +38,6 @@ public function testEventSubscriberWithoutInterface()
3738

3839
public function testValidEventSubscriber()
3940
{
40-
$services = [
41-
'my_event_subscriber' => [0 => []],
42-
];
43-
4441
$builder = new ContainerBuilder();
4542
$eventDispatcherDefinition = $builder->register('event_dispatcher');
4643
$builder->register('my_event_subscriber', 'Symfony\Component\EventDispatcher\Tests\DependencyInjection\SubscriberService')
@@ -62,6 +59,30 @@ public function testValidEventSubscriber()
6259
$this->assertEquals($expectedCalls, $eventDispatcherDefinition->getMethodCalls());
6360
}
6461

62+
public function testAliasedEventSubscriber(): void
63+
{
64+
$builder = new ContainerBuilder();
65+
$builder->setParameter('event_dispatcher.event_aliases', [AliasedEvent::class => 'aliased_event']);
66+
$builder->register('event_dispatcher');
67+
$builder->register('my_event_subscriber', AliasedSubscriber::class)
68+
->addTag('kernel.event_subscriber');
69+
70+
$registerListenersPass = new RegisterListenersPass();
71+
$registerListenersPass->process($builder);
72+
73+
$expectedCalls = [
74+
[
75+
'addListener',
76+
[
77+
'aliased_event',
78+
[new ServiceClosureArgument(new Reference('my_event_subscriber')), 'onAliasedEvent'],
79+
0,
80+
],
81+
],
82+
];
83+
$this->assertEquals($expectedCalls, $builder->getDefinition('event_dispatcher')->getMethodCalls());
84+
}
85+
6586
public function testAbstractEventListener()
6687
{
6788
$this->expectException('InvalidArgumentException');
@@ -175,9 +196,33 @@ public function testInvokableEventListener()
175196
];
176197
$this->assertEquals($expectedCalls, $definition->getMethodCalls());
177198
}
199+
200+
public function testAliasedEventListener(): void
201+
{
202+
$container = new ContainerBuilder();
203+
$container->setParameter('event_dispatcher.event_aliases', [AliasedEvent::class => 'aliased_event']);
204+
$container->register('foo', InvokableListenerService::class)->addTag('kernel.event_listener', ['event' => AliasedEvent::class, 'method' => 'onEvent']);
205+
$container->register('event_dispatcher');
206+
207+
$registerListenersPass = new RegisterListenersPass();
208+
$registerListenersPass->process($container);
209+
210+
$definition = $container->getDefinition('event_dispatcher');
211+
$expectedCalls = [
212+
[
213+
'addListener',
214+
[
215+
'aliased_event',
216+
[new ServiceClosureArgument(new Reference('foo')), 'onEvent'],
217+
0,
218+
],
219+
],
220+
];
221+
$this->assertEquals($expectedCalls, $definition->getMethodCalls());
222+
}
178223
}
179224

180-
class SubscriberService implements \Symfony\Component\EventDispatcher\EventSubscriberInterface
225+
class SubscriberService implements EventSubscriberInterface
181226
{
182227
public static function getSubscribedEvents(): array
183228
{
@@ -197,3 +242,17 @@ public function onEvent()
197242
{
198243
}
199244
}
245+
246+
final class AliasedSubscriber implements EventSubscriberInterface
247+
{
248+
public static function getSubscribedEvents(): array
249+
{
250+
return [
251+
AliasedEvent::class => 'onAliasedEvent',
252+
];
253+
}
254+
}
255+
256+
final class AliasedEvent
257+
{
258+
}

0 commit comments

Comments
 (0)