[Messenger] Fix get in Doctrine Transport
This commit is contained in:
parent
9669e13554
commit
27466498d0
@ -0,0 +1,60 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of the symfony project.
|
||||||
|
*
|
||||||
|
* (c) Vincent Touzet <vincent.touzet@dotsafe.fr>
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Symfony\Component\Messenger\Tests\Transport\Doctrine;
|
||||||
|
|
||||||
|
use PHPUnit\Framework\TestCase;
|
||||||
|
use Symfony\Component\Messenger\Envelope;
|
||||||
|
use Symfony\Component\Messenger\Tests\Fixtures\DummyMessage;
|
||||||
|
use Symfony\Component\Messenger\Transport\Doctrine\Connection;
|
||||||
|
use Symfony\Component\Messenger\Transport\Doctrine\DoctrineTransport;
|
||||||
|
use Symfony\Component\Messenger\Transport\Serialization\SerializerInterface;
|
||||||
|
use Symfony\Component\Messenger\Transport\TransportInterface;
|
||||||
|
|
||||||
|
class DoctrineTransportTest extends TestCase
|
||||||
|
{
|
||||||
|
public function testItIsATransport()
|
||||||
|
{
|
||||||
|
$transport = $this->getTransport();
|
||||||
|
|
||||||
|
$this->assertInstanceOf(TransportInterface::class, $transport);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testReceivesMessages()
|
||||||
|
{
|
||||||
|
$transport = $this->getTransport(
|
||||||
|
$serializer = $this->getMockBuilder(SerializerInterface::class)->getMock(),
|
||||||
|
$connection = $this->getMockBuilder(Connection::class)->disableOriginalConstructor()->getMock()
|
||||||
|
);
|
||||||
|
|
||||||
|
$decodedMessage = new DummyMessage('Decoded.');
|
||||||
|
|
||||||
|
$doctrineEnvelope = [
|
||||||
|
'id' => '5',
|
||||||
|
'body' => 'body',
|
||||||
|
'headers' => ['my' => 'header'],
|
||||||
|
];
|
||||||
|
|
||||||
|
$serializer->method('decode')->with(['body' => 'body', 'headers' => ['my' => 'header']])->willReturn(new Envelope($decodedMessage));
|
||||||
|
$connection->method('get')->willReturn($doctrineEnvelope);
|
||||||
|
|
||||||
|
$envelopes = iterator_to_array($transport->get());
|
||||||
|
$this->assertSame($decodedMessage, $envelopes[0]->getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getTransport(SerializerInterface $serializer = null, Connection $connection = null)
|
||||||
|
{
|
||||||
|
$serializer = $serializer ?: $this->getMockBuilder(SerializerInterface::class)->getMock();
|
||||||
|
$connection = $connection ?: $this->getMockBuilder(Connection::class)->disableOriginalConstructor()->getMock();
|
||||||
|
|
||||||
|
return new DoctrineTransport($connection, $serializer);
|
||||||
|
}
|
||||||
|
}
|
@ -231,7 +231,7 @@ class Connection
|
|||||||
->setNotnull(true);
|
->setNotnull(true);
|
||||||
$table->addColumn('body', Type::TEXT)
|
$table->addColumn('body', Type::TEXT)
|
||||||
->setNotnull(true);
|
->setNotnull(true);
|
||||||
$table->addColumn('headers', Type::STRING)
|
$table->addColumn('headers', Type::TEXT)
|
||||||
->setNotnull(true);
|
->setNotnull(true);
|
||||||
$table->addColumn('queue_name', Type::STRING)
|
$table->addColumn('queue_name', Type::STRING)
|
||||||
->setNotnull(true);
|
->setNotnull(true);
|
||||||
|
@ -39,7 +39,7 @@ class DoctrineTransport implements TransportInterface, SetupableTransportInterfa
|
|||||||
*/
|
*/
|
||||||
public function get(): iterable
|
public function get(): iterable
|
||||||
{
|
{
|
||||||
($this->receiver ?? $this->getReceiver())->get();
|
return ($this->receiver ?? $this->getReceiver())->get();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user