Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 1245114

Browse files
committed
[Notifier] Fix return SentMessage then Messenger not used
1 parent 2ad08d5 commit 1245114

File tree

5 files changed

+129
-7
lines changed

5 files changed

+129
-7
lines changed

src/Symfony/Component/Notifier/Chatter.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,7 @@ public function supports(MessageInterface $message): bool
5151
public function send(MessageInterface $message): ?SentMessage
5252
{
5353
if (null === $this->bus) {
54-
$this->transport->send($message);
55-
56-
return null;
54+
return $this->transport->send($message);
5755
}
5856

5957
if (null !== $this->dispatcher) {
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
<?php
2+
3+
namespace Symfony\Component\Notifier\Tests;
4+
5+
use PHPUnit\Framework\MockObject\MockObject;
6+
use PHPUnit\Framework\TestCase;
7+
use Symfony\Component\Messenger\Envelope;
8+
use Symfony\Component\Messenger\MessageBusInterface;
9+
use Symfony\Component\Notifier\Chatter;
10+
use Symfony\Component\Notifier\Message\SentMessage;
11+
use Symfony\Component\Notifier\Tests\Transport\DummyMessage;
12+
use Symfony\Component\Notifier\Transport\TransportInterface;
13+
14+
class ChatterTest extends TestCase
15+
{
16+
/** @var MockObject&TransportInterface */
17+
private $transport;
18+
19+
/** @var MockObject&MessageBusInterface */
20+
private $bus;
21+
22+
protected function setUp(): void
23+
{
24+
$this->transport = $this->createMock(TransportInterface::class);
25+
$this->bus = $this->createMock(MessageBusInterface::class);
26+
}
27+
28+
public function testSendWithoutBus()
29+
{
30+
$message = new DummyMessage();
31+
32+
$sentMessage = new SentMessage($message, 'any');
33+
34+
$this->transport
35+
->expects($this->once())
36+
->method('send')
37+
->with($message)
38+
->willReturn($sentMessage);
39+
40+
$chatter = new Chatter($this->transport);
41+
$this->assertSame($sentMessage, $chatter->send($message));
42+
$this->assertSame($message, $sentMessage->getOriginalMessage());
43+
}
44+
45+
public function testSendWithBus()
46+
{
47+
$message = new DummyMessage();
48+
49+
$this->transport
50+
->expects($this->never())
51+
->method('send')
52+
->with($message);
53+
54+
$this->bus
55+
->expects($this->once())
56+
->method('dispatch')
57+
->with($message)
58+
->willReturn(new Envelope(new \stdClass()));
59+
60+
$chatter = new Chatter($this->transport, $this->bus);
61+
$this->assertNull($chatter->send($message));
62+
}
63+
}
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
<?php
2+
3+
namespace Symfony\Component\Notifier\Tests;
4+
5+
use PHPUnit\Framework\MockObject\MockObject;
6+
use PHPUnit\Framework\TestCase;
7+
use Symfony\Component\Messenger\Envelope;
8+
use Symfony\Component\Messenger\MessageBusInterface;
9+
use Symfony\Component\Notifier\Message\SentMessage;
10+
use Symfony\Component\Notifier\Tests\Transport\DummyMessage;
11+
use Symfony\Component\Notifier\Texter;
12+
use Symfony\Component\Notifier\Transport\TransportInterface;
13+
14+
class TexterTest extends TestCase
15+
{
16+
/** @var MockObject&TransportInterface */
17+
private $transport;
18+
19+
/** @var MockObject&MessageBusInterface */
20+
private $bus;
21+
22+
protected function setUp(): void
23+
{
24+
$this->transport = $this->createMock(TransportInterface::class);
25+
$this->bus = $this->createMock(MessageBusInterface::class);
26+
}
27+
28+
public function testSendWithoutBus()
29+
{
30+
$message = new DummyMessage();
31+
$sentMessage = new SentMessage($message, 'any');
32+
33+
$this->transport
34+
->expects($this->once())
35+
->method('send')
36+
->with($message)
37+
->willReturn($sentMessage);
38+
39+
$texter = new Texter($this->transport);
40+
$this->assertSame($sentMessage, $texter->send($message));
41+
$this->assertSame($message, $sentMessage->getOriginalMessage());
42+
}
43+
44+
public function testSendWithBus()
45+
{
46+
$message = new DummyMessage();
47+
48+
$this->transport
49+
->expects($this->never())
50+
->method('send')
51+
->with($message);
52+
53+
$this->bus
54+
->expects($this->once())
55+
->method('dispatch')
56+
->with($message)
57+
->willReturn(new Envelope(new \stdClass()));
58+
59+
$texter = new Texter($this->transport, $this->bus);
60+
$this->assertNull($texter->send($message));
61+
}
62+
}

src/Symfony/Component/Notifier/Texter.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,7 @@ public function supports(MessageInterface $message): bool
5151
public function send(MessageInterface $message): ?SentMessage
5252
{
5353
if (null === $this->bus) {
54-
$this->transport->send($message);
55-
56-
return null;
54+
return $this->transport->send($message);
5755
}
5856

5957
if (null !== $this->dispatcher) {

src/Symfony/Component/Notifier/composer.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222
},
2323
"require-dev": {
2424
"symfony/event-dispatcher-contracts": "^2",
25-
"symfony/http-client-contracts": "^2"
25+
"symfony/http-client-contracts": "^2",
26+
"symfony/messenger": "^4.4 || ^5.0"
2627
},
2728
"conflict": {
2829
"symfony/http-kernel": "<4.4",

0 commit comments

Comments
 (0)