8000 [Messenger] Fix TraceableBus with envelope · sroze/symfony@21e49d2 · GitHub
[go: up one dir, main page]

Skip to content

Commit 21e49d2

Browse files
ogizanagisroze
authored andcommitted
[Messenger] Fix TraceableBus with envelope
1 parent 599f32c commit 21e49d2

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

src/Symfony/Component/Messenger/Tests/TraceableMessageBusTest.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
namespace Symfony\Component\Messenger\Tests;
1313

1414
use PHPUnit\Framework\TestCase;
15+
use Symfony\Component\Messenger\Envelope;
1516
use Symfony\Component\Messenger\MessageBusInterface;
1617
use Symfony\Component\Messenger\Tests\Fixtures\DummyMessage;
1718
use Symfony\Component\Messenger\TraceableMessageBus;
@@ -30,6 +31,18 @@ public function testItTracesResult()
3031
$this->assertSame(array(array('message' => $message, 'result' => $result)), $traceableBus->getDispatchedMessages());
3132
}
3233

34+
public function testItTracesResultWithEnvelope()
35+
{
36+
$envelope = Envelope::wrap($message = new DummyMessage('Hello'));
37+
38+
$bus = $this->getMockBuilder(MessageBusInterface::class)->getMock();
39+
$bus->expects($this->once())->method('dispatch')->with($envelope)->willReturn($result = array('foo' => 'bar'));
40+
41+
$traceableBus = new TraceableMessageBus($bus);
42+
$this->assertSame($result, $traceableBus->dispatch($envelope));
43+
$this->assertSame(array(array('message' => $message, 'result' => $result)), $traceableBus->getDispatchedMessages());
44+
}
45+
3346
public function testItTracesExceptions()
3447
{
3548
$message = new DummyMessage('Hello');

src/Symfony/Component/Messenger/TraceableMessageBus.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,18 +29,20 @@ public function __construct(MessageBusInterface $decoratedBus)
2929
*/
3030
public function dispatch($message)
3131
{
32+
$messageToTrace = $message instanceof Envelope ? $message->getMessage() : $message;
33+
3234
try {
3335
$result = $this->decoratedBus->dispatch($message);
3436

3537
$this->dispatchedMessages[] = array(
36-
'message' => $message,
38+
'message' => $messageToTrace,
3739
'result' => $result,
3840
);
3941

4042
return $result;
4143
} catch (\Throwable $e) {
4244
$this->dispatchedMessages[] = array(
43-
'message' => $message,
45+
'message' => $messageToTrace,
4446
'exception' => $e,
4547
);
4648

0 commit comments

Comments
 (0)
0