@@ -92,7 +92,7 @@ public function testFromDsnAsQueueUrl()
92
92
{
93
93
$ httpClient = $ this ->getMockBuilder (HttpClientInterface::class)->getMock ();
94
94
$ this ->assertEquals (
95
- new Connection (['queue_name ' => 'ab1-MyQueue-A2BCDEF3GHI4 ' , 'account ' => '123456789012 ' ], new SqsClient (['region ' => 'us-east-2 ' , 'endpoint ' => 'https://sqs.us-east-2.amazonaws.com ' , 'accessKeyId ' => null , 'accessKeySecret ' => null ], null , $ httpClient )),
95
+ new Connection (['queue_name ' => 'ab1-MyQueue-A2BCDEF3GHI4 ' , 'account ' => '123456789012 ' ], new SqsClient (['region ' => 'us-east-2 ' , 'endpoint ' => 'https://sqs.us-east-2.amazonaws.com ' , 'accessKeyId ' => null , 'accessKeySecret ' => null ], null , $ httpClient ), ' https://sqs.us-east-2.amazonaws.com/123456789012/ab1-MyQueue-A2BCDEF3GHI4 ' ),
96
96
Connection::fromDsn ('https://sqs.us-east-2.amazonaws.com/123456789012/ab1-MyQueue-A2BCDEF3GHI4 ' , [], $ httpClient )
97
97
);
98
98
}
@@ -259,4 +259,57 @@ public function testUnexpectedSqsError()
259
259
$ connection = new Connection (['queue_name ' => 'queue ' , 'account ' => 123 , 'auto_setup ' => false ], $ client );
260
260
$ connection ->get ();
261
261
}
262
+
263
+ /**
264
+ * @dataProvider provideQueueUrl
265
+ */
266
+ public function testInjectQueueUrl (string $ dsn , string $ queueUrl )
267
+ {
268
+ $ connection = Connection::fromDsn ($ dsn );
269
+
270
+ $ r = new \ReflectionObject ($ connection );
271
+ $ queueProperty = $ r ->getProperty ('queueUrl ' );
272
+ $ queueProperty ->setAccessible (true );
273
+
274
+ $ this ->assertSame ($ queueUrl , $ queueProperty ->getValue ($ connection ));
275
+ }
276
+
277
+ public function provideQueueUrl ()
278
+ {
279
+ yield ['https://sqs.us-east-2.amazonaws.com/123456/queue ' , 'https://sqs.us-east-2.amazonaws.com/123456/queue ' ];
280
+ yield ['https://KEY:SECRET@sqs.us-east-2.amazonaws.com/123456/queue ' , 'https://sqs.us-east-2.amazonaws.com/123456/queue ' ];
281
+ yield ['https://sqs.us-east-2.amazonaws.com/123456/queue?auto_setup=1 ' , 'https://sqs.us-east-2.amazonaws.com/123456/queue ' ];
282
+ }
283
+
284
+ /**
285
+ * @dataProvider provideNotQueueUrl
286
+ */
287
+ public function testNotInjectQueueUrl (string $ dsn )
288
+ {
289
+ $ connection = Connection::fromDsn ($ dsn );
290
+
291
+ $ r = new \ReflectionObject ($ connection );
292
+ $ queueProperty = $ r ->getProperty ('queueUrl ' );
293
+ $ queueProperty ->setAccessible (true );
294
+
295
+ $ this ->assertNull ($ queueProperty ->getValue ($ connection ));
296
+ }
297
+
298
+ public function provideNotQueueUrl ()
299
+ {
300
+ yield ['https://sqs.us-east-2.amazonaws.com/queue ' ];
301
+ yield ['https://us-east-2/123456/ab1-MyQueue-A2BCDEF3GHI4 ' ];
302
+ yield ['sqs://default/queue ' ];
303
+ }
304
+
305
+ public function testGetQueueUrlNotCalled ()
306
+ {
307
+ $ client = $ this ->getMockBuilder (SqsClient::class)->getMock ();
308
+ $ connection = new Connection (['queue_name ' => 'ab1-MyQueue-A2BCDEF3GHI4 ' , 'account ' => '123456789012 ' ], $ client , 'https://sqs.us-east-2.amazonaws.com/123456789012/ab1-MyQueue-A2BCDEF3GHI4 ' );
309
+
310
+ $ client ->expects ($ this ->never ())->method ('getQueueUrl ' );
311
+ $ client ->expects ($ this ->once ())->method ('deleteMessage ' );
312
+
313
+ $ connection ->delete ('id ' );
314
+ }
262
315
}
0 commit comments