Skip to content

Commit 98e04bb

Browse files
committed
[Messenger] Fix get in Doctrine Transport
1 parent f3708c8 commit 98e04bb

File tree

3 files changed

+62
-2
lines changed

3 files changed

+62
-2
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
<?php
2+
3+
/*
4+
* This file is part of the symfony project.
5+
*
6+
* (c) Vincent Touzet <vincent.touzet@dotsafe.fr>
7+
*
8+
* For the full copyright and license information, please view the LICENSE
9+
* file that was distributed with this source code.
10+
*/
11+
12+
namespace Symfony\Component\Messenger\Tests\Transport\Doctrine;
13+
14+
use PHPUnit\Framework\TestCase;
15+
use Symfony\Component\Messenger\Envelope;
16+
use Symfony\Component\Messenger\Tests\Fixtures\DummyMessage;
17+
use Symfony\Component\Messenger\Transport\Doctrine\Connection;
18+
use Symfony\Component\Messenger\Transport\Doctrine\DoctrineTransport;
19+
use Symfony\Component\Messenger\Transport\Serialization\SerializerInterface;
20+
use Symfony\Component\Messenger\Transport\TransportInterface;
21+
22+
class DoctrineTransportTest extends TestCase
23+
{
24+
public function testItIsATransport()
25+
{
26+
$transport = $this->getTransport();
27+
28+
$this->assertInstanceOf(TransportInterface::class, $transport);
29+
}
30+
31+
public function testReceivesMessages()
32+
{
33+
$transport = $this->getTransport(
34+
$serializer = $this->getMockBuilder(SerializerInterface::class)->getMock(),
35+
$connection = $this->getMockBuilder(Connection::class)->disableOriginalConstructor()->getMock()
36+
);
37+
38+
$decodedMessage = new DummyMessage('Decoded.');
39+
40+
$doctrineEnvelope = [
41+
'id' => '5',
42+
'body' => 'body',
43+
'headers' => ['my' => 'header'],
44+
];
45+
46+
$serializer->method('decode')->with(['body' => 'body', 'headers' => ['my' => 'header']])->willReturn(new Envelope($decodedMessage));
47+
$connection->method('get')->willReturn($doctrineEnvelope);
48+
49+
$envelopes = iterator_to_array($transport->get());
50+
$this->assertSame($decodedMessage, $envelopes[0]->getMessage());
51+
}
52+
53+
private function getTransport(SerializerInterface $serializer = null, Connection $connection = null)
54+
{
55+
$serializer = $serializer ?: $this->getMockBuilder(SerializerInterface::class)->getMock();
56+
$connection = $connection ?: $this->getMockBuilder(Connection::class)->disableOriginalConstructor()->getMock();
57+
58+
return new DoctrineTransport($connection, $serializer);
59+
}
60+
}

Transport/Doctrine/Connection.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ private function getSchema(): Schema
231231
->setNotnull(true);
232232
$table->addColumn('body', Type::TEXT)
233233
->setNotnull(true);
234-
$table->addColumn('headers', Type::STRING)
234+
$table->addColumn('headers', Type::TEXT)
235235
->setNotnull(true);
236236
$table->addColumn('queue_name', Type::STRING)
237237
->setNotnull(true);

Transport/Doctrine/DoctrineTransport.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public function __construct(Connection $connection, SerializerInterface $seriali
3939
*/
4040
public function get(): iterable
4141
{
42-
($this->receiver ?? $this->getReceiver())->get();
42+
return ($this->receiver ?? $this->getReceiver())->get();
4343
}
4444

4545
/**

0 commit comments

Comments
 (0)