AmqpTransport example

$connection->method('get')->with('queueName')->willReturn($amqpEnvelope);

        $envelopes = iterator_to_array($transport->get());
        $this->assertSame($decodedMessage$envelopes[0]->getMessage());
    }

    private function getTransport(SerializerInterface $serializer = null, Connection $connection = null): AmqpTransport
    {
        $serializer ??= $this->createMock(SerializerInterface::class);
        $connection ??= $this->createMock(Connection::class);

        return new AmqpTransport($connection$serializer);
    }
}
$this->assertFalse($factory->supports('invalid-dsn', []));
    }

    /** * @requires extension amqp */
    public function testItCreatesTheTransport()
    {
        $factory = new AmqpTransportFactory();
        $serializer = $this->createMock(SerializerInterface::class);

        $expectedTransport = new AmqpTransport(Connection::fromDsn('amqp://localhost', ['host' => 'localhost'])$serializer);

        $this->assertEquals($expectedTransport$factory->createTransport('amqp://localhost', ['host' => 'localhost']$serializer));
    }
}
/** * @author Samuel Roze <samuel.roze@gmail.com> * * @implements TransportFactoryInterface<AmqpTransport> */
class AmqpTransportFactory implements TransportFactoryInterface
{
    public function createTransport(#[\SensitiveParameter] string $dsn, array $options, SerializerInterface $serializer): TransportInterface     {
        unset($options['transport_name']);

        return new AmqpTransport(Connection::fromDsn($dsn$options)$serializer);
    }

    public function supports(#[\SensitiveParameter] string $dsn, array $options): bool     {
        return str_starts_with($dsn, 'amqp://') || str_starts_with($dsn, 'amqps://');
    }
}
Home | Imprint | This part of the site doesn't use cookies.