@@ -266,6 +266,58 @@ public function testShouldCreateDriverFromDsn($dsn, $expectedName)
266
266
$ this ->assertEquals ($ driverId , (string ) $ context );
267
267
}
268
268
269
+ public function testShouldCreateConnectionFactoryFromEnvironmentDSN ()
270
+ {
271
+ $ env = str_replace (['\\' , ': ' ], '' , strtoupper (uniqid (__METHOD__ )));
272
+ putenv ("$ env=null: " );
273
+
274
+ $ container = new ContainerBuilder ();
275
+
276
+ $ transport = new DefaultTransportFactory ();
277
+
278
+ $ serviceId = $ transport ->createConnectionFactory ($ container , ['dsn ' => "%env( $ env)% " ]);
279
+
280
+ $ this ->assertEquals ('enqueue.transport.default.connection_factory ' , $ serviceId );
281
+
282
+ $ this ->assertTrue ($ container ->hasAlias ('enqueue.transport.default.connection_factory ' ));
283
+ $ this ->assertEquals (
284
+ sprintf ('enqueue.transport.%s.connection_factory ' , 'default_null ' ),
285
+ (string ) $ container ->getAlias ('enqueue.transport.default.connection_factory ' )
286
+ );
287
+
288
+ $ this ->assertTrue ($ container ->hasAlias ('enqueue.transport.connection_factory ' ));
289
+ $ this ->assertEquals (
290
+ 'enqueue.transport.default.connection_factory ' ,
291
+ (string ) $ container ->getAlias ('enqueue.transport.connection_factory ' )
292
+ );
293
+ }
294
+
295
+ public function testShouldCreateConnectionFactoryFromEnvironmentWithResolveProviderDSN ()
296
+ {
297
+ $ env = str_replace (['\\' , ': ' ], '' , strtoupper (uniqid (__METHOD__ )));
298
+ putenv ("$ env=file: " );
299
+
300
+ $ container = new ContainerBuilder ();
301
+
302
+ $ transport = new DefaultTransportFactory ();
303
+
304
+ $ serviceId = $ transport ->createConnectionFactory ($ container , ['dsn ' => "%env(resolve: $ env)% " ]);
305
+
306
+ $ this ->assertEquals ('enqueue.transport.default.connection_factory ' , $ serviceId );
307
+
308
+ $ this ->assertTrue ($ container ->hasAlias ('enqueue.transport.default.connection_factory ' ));
309
+ $ this ->assertEquals (
310
+ sprintf ('enqueue.transport.%s.connection_factory ' , 'default_fs ' ),
311
+ (string ) $ container ->getAlias ('enqueue.transport.default.connection_factory ' )
312
+ );
313
+
314
+ $ this ->assertTrue ($ container ->hasAlias ('enqueue.transport.connection_factory ' ));
315
+ $ this ->assertEquals (
316
+ 'enqueue.transport.default.connection_factory ' ,
317
+ (string ) $ container ->getAlias ('enqueue.transport.connection_factory ' )
318
+ );
319
+ }
320
+
269
321
public static function provideDSNs ()
270
322
{
271
323
yield ['amqp+ext: ' , 'default_amqp ' ];
0 commit comments