Skip to content

Commit 444aa95

Browse files
committed
Add TraceableMessageBus stub with typed getDispatchedMessages()
1 parent 4c7a7dd commit 444aa95

4 files changed

Lines changed: 41 additions & 0 deletions

File tree

extension.neon

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ parameters:
4646
- stubs/Symfony/Component/HttpFoundation/Session.stub
4747
- stubs/Symfony/Component/Messenger/StampInterface.stub
4848
- stubs/Symfony/Component/Messenger/Envelope.stub
49+
- stubs/Symfony/Component/Messenger/TraceableMessageBus.stub
4950
- stubs/Symfony/Component/OptionsResolver/Exception/InvalidOptionsException.stub
5051
- stubs/Symfony/Component/OptionsResolver/Options.stub
5152
- stubs/Symfony/Component/Process/Exception/LogicException.stub
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?php
2+
3+
namespace Symfony\Component\Messenger;
4+
5+
use Symfony\Component\Messenger\Stamp\StampInterface;
6+
7+
class TraceableMessageBus
8+
{
9+
10+
/**
11+
* @return list<array{
12+
* stamps: list<StampInterface>,
13+
* message: object,
14+
* caller: array{name: string, file: string|null, line: int|null},
15+
* callTime: float,
16+
* exception?: \Throwable,
17+
* stamps_after_dispatch: list<StampInterface>,
18+
* }>
19+
*/
20+
public function getDispatchedMessages(): array
21+
{
22+
}
23+
24+
}

tests/Type/Symfony/ExtensionTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ public function dataFileAsserts(): iterable
2222
}
2323

2424
yield from $this->gatherAssertTypes(__DIR__ . '/data/envelope_all.php');
25+
yield from $this->gatherAssertTypes(__DIR__ . '/data/traceable_message_bus.php');
26+
2527
yield from $this->gatherAssertTypes(__DIR__ . '/data/header_bag_get.php');
2628
yield from $this->gatherAssertTypes(__DIR__ . '/data/response_header_bag_get_cookies.php');
2729

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php declare(strict_types = 1);
2+
3+
use Symfony\Component\Messenger\TraceableMessageBus;
4+
use function PHPStan\Testing\assertType;
5+
6+
$bus = new TraceableMessageBus(new class implements \Symfony\Component\Messenger\MessageBusInterface {
7+
public function dispatch(object $message, array $stamps = []): \Symfony\Component\Messenger\Envelope
8+
{
9+
return new \Symfony\Component\Messenger\Envelope($message);
10+
}
11+
});
12+
13+
$messages = $bus->getDispatchedMessages();
14+
assertType('list<array{stamps: list<Symfony\Component\Messenger\Stamp\StampInterface>, message: object, caller: array{name: string, file: string|null, line: int|null}, callTime: float, exception?: Throwable, stamps_after_dispatch: list<Symfony\Component\Messenger\Stamp\StampInterface>}>', $messages);

0 commit comments

Comments
 (0)