[Mailer] Fixed generator bug when creating multiple transports using Transport::fromDsn

This commit is contained in:
Ahmed TAILOULOUTE 2020-06-08 21:05:34 +02:00 committed by Fabien Potencier
parent 017af041f8
commit c5833fa784
2 changed files with 17 additions and 1 deletions

View File

@ -60,6 +60,22 @@ class TransportTest extends TestCase
];
}
/**
* @dataProvider fromDsnProvider
*/
public function testFromDsn(string $dsn, TransportInterface $transport): void
{
$this->assertEquals($transport, Transport::fromDsn($dsn));
}
public function fromDsnProvider(): iterable
{
yield 'multiple transports' => [
'failover(smtp://a smtp://b)',
new FailoverTransport([new Transport\Smtp\EsmtpTransport('a'), new Transport\Smtp\EsmtpTransport('b')]),
];
}
/**
* @dataProvider fromWrongStringProvider
*/

View File

@ -51,7 +51,7 @@ class Transport
public static function fromDsn(string $dsn, EventDispatcherInterface $dispatcher = null, HttpClientInterface $client = null, LoggerInterface $logger = null): TransportInterface
{
$factory = new self(self::getDefaultFactories($dispatcher, $client, $logger));
$factory = new self(iterator_to_array(self::getDefaultFactories($dispatcher, $client, $logger)));
return $factory->fromString($dsn);
}