@@ -146,22 +146,21 @@ public function testRun(
146
146
) {
147
147
$ consumerName = 'consumerName ' ;
148
148
149
- $ this ->deploymentConfigMock -> expects ( $ this -> exactly ( 3 ))
149
+ $ this ->deploymentConfigMock
150
150
->method ('get ' )
151
151
->willReturnMap (
152
152
[
153
153
['cron_consumers_runner/cron_run ' , true , true ],
154
154
['cron_consumers_runner/max_messages ' , 10000 , $ maxMessages ],
155
155
['cron_consumers_runner/consumers ' , [], $ allowedConsumers ],
156
+ ['queue/only_spawn_when_message_available ' , null , 0 ],
156
157
]
157
158
);
158
159
159
160
/** @var ConsumerConfigInterface|MockObject $firstCunsumer */
160
161
$ consumer = $ this ->getMockBuilder (ConsumerConfigItemInterface::class)
161
162
->getMockForAbstractClass ();
162
- $ consumer ->expects ($ this ->any ())
163
- ->method ('getName ' )
164
- ->willReturn ($ consumerName );
163
+ $ consumer ->method ('getName ' )->willReturn ($ consumerName );
165
164
166
165
$ this ->phpExecutableFinderMock ->expects ($ this ->once ())
167
166
->method ('find ' )
@@ -276,39 +275,42 @@ public function runDataProvider()
276
275
* @param boolean $onlySpawnWhenMessageAvailable
277
276
* @param boolean $isMassagesAvailableInTheQueue
278
277
* @param int $shellBackgroundExpects
278
+ * @param boolean $globalOnlySpawnWhenMessageAvailable
279
+ * @param int $getOnlySpawnWhenMessageAvailableCallCount
280
+ * @param int $isMassagesAvailableInTheQueueCallCount
279
281
* @dataProvider runBasedOnOnlySpawnWhenMessageAvailableConsumerConfigurationDataProvider
280
282
*/
281
283
public function testRunBasedOnOnlySpawnWhenMessageAvailableConsumerConfiguration (
282
284
$ onlySpawnWhenMessageAvailable ,
283
285
$ isMassagesAvailableInTheQueue ,
284
- $ shellBackgroundExpects
286
+ $ shellBackgroundExpects ,
287
+ $ globalOnlySpawnWhenMessageAvailable ,
288
+ $ getOnlySpawnWhenMessageAvailableCallCount ,
289
+ $ isMassagesAvailableInTheQueueCallCount
285
290
) {
286
291
$ consumerName = 'consumerName ' ;
287
292
$ connectionName = 'connectionName ' ;
288
293
$ queueName = 'queueName ' ;
289
- $ this ->deploymentConfigMock ->expects ($ this ->exactly (3 ))
294
+ $ this ->deploymentConfigMock ->expects ($ this ->exactly (4 ))
290
295
->method ('get ' )
291
296
->willReturnMap (
292
297
[
293
298
['cron_consumers_runner/cron_run ' , true , true ],
294
299
['cron_consumers_runner/max_messages ' , 10000 , 1000 ],
295
300
['cron_consumers_runner/consumers ' , [], []],
301
+ ['queue/only_spawn_when_message_available ' , true , $ globalOnlySpawnWhenMessageAvailable ],
296
302
]
297
303
);
298
304
299
305
/** @var ConsumerConfigInterface|MockObject $firstCunsumer */
300
306
$ consumer = $ this ->getMockBuilder (ConsumerConfigItemInterface::class)
301
307
->getMockForAbstractClass ();
302
- $ consumer ->expects ($ this ->any ())
303
- ->method ('getName ' )
304
- ->willReturn ($ consumerName );
308
+ $ consumer ->method ('getName ' )->willReturn ($ consumerName );
305
309
$ consumer ->expects ($ this ->once ())
306
310
->method ('getConnection ' )
307
311
->willReturn ($ connectionName );
308
- $ consumer ->expects ($ this ->any ())
309
- ->method ('getQueue ' )
310
- ->willReturn ($ queueName );
311
- $ consumer ->expects ($ this ->once ())
312
+ $ consumer ->method ('getQueue ' )->willReturn ($ queueName );
313
+ $ consumer ->expects ($ this ->exactly ($ getOnlySpawnWhenMessageAvailableCallCount ))
312
314
->method ('getOnlySpawnWhenMessageAvailable ' )
313
315
->willReturn ($ onlySpawnWhenMessageAvailable );
314
316
$ this ->consumerConfigMock ->expects ($ this ->once ())
@@ -323,7 +325,7 @@ public function testRunBasedOnOnlySpawnWhenMessageAvailableConsumerConfiguration
323
325
->method ('isLocked ' )
324
326
->willReturn (false );
325
327
326
- $ this ->checkIsAvailableMessagesMock ->expects ($ this ->exactly (( int ) $ onlySpawnWhenMessageAvailable ))
328
+ $ this ->checkIsAvailableMessagesMock ->expects ($ this ->exactly ($ isMassagesAvailableInTheQueueCallCount ))
327
329
->method ('execute ' )
328
330
->willReturn ($ isMassagesAvailableInTheQueue );
329
331
@@ -342,24 +344,51 @@ public function runBasedOnOnlySpawnWhenMessageAvailableConsumerConfigurationData
342
344
[
343
345
'onlySpawnWhenMessageAvailable ' => true ,
344
346
'isMassagesAvailableInTheQueue ' => true ,
345
- 'shellBackgroundExpects ' => 1
347
+ 'shellBackgroundExpects ' => 1 ,
348
+ 'globalOnlySpawnWhenMessageAvailable ' => false ,
349
+ 'getOnlySpawnWhenMessageAvailableCallCount ' => 1 ,
350
+ 'isMassagesAvailableInTheQueueCallCount ' => 1
346
351
],
347
352
[
348
353
'onlySpawnWhenMessageAvailable ' => true ,
349
354
'isMassagesAvailableInTheQueue ' => false ,
350
- 'shellBackgroundExpects ' => 0
355
+ 'shellBackgroundExpects ' => 0 ,
356
+ 'globalOnlySpawnWhenMessageAvailable ' => false ,
357
+ 'getOnlySpawnWhenMessageAvailableCallCount ' => 1 ,
358
+ 'isMassagesAvailableInTheQueueCallCount ' => 1
351
359
],
352
360
[
353
361
'onlySpawnWhenMessageAvailable ' => false ,
354
362
'isMassagesAvailableInTheQueue ' => true ,
355
- 'shellBackgroundExpects ' => 1
363
+ 'shellBackgroundExpects ' => 1 ,
364
+ 'globalOnlySpawnWhenMessageAvailable ' => false ,
365
+ 'getOnlySpawnWhenMessageAvailableCallCount ' => 2 ,
366
+ 'isMassagesAvailableInTheQueueCallCount ' => 0
367
+ ],
368
+ [
369
+ 'onlySpawnWhenMessageAvailable ' => null ,
370
+ 'isMassagesAvailableInTheQueue ' => true ,
371
+ 'shellBackgroundExpects ' => 1 ,
372
+ 'globalOnlySpawnWhenMessageAvailable ' => true ,
373
+ 'getOnlySpawnWhenMessageAvailableCallCount ' => 2 ,
374
+ 'isMassagesAvailableInTheQueueCallCount ' => 1
375
+ ],
376
+ [
377
+ 'onlySpawnWhenMessageAvailable ' => null ,
378
+ 'isMassagesAvailableInTheQueue ' => true ,
379
+ 'shellBackgroundExpects ' => 1 ,
380
+ 'globalOnlySpawnWhenMessageAvailable ' => false ,
381
+ 'getOnlySpawnWhenMessageAvailableCallCount ' => 2 ,
382
+ 'isMassagesAvailableInTheQueueCallCount ' => 0
356
383
],
357
384
[
358
385
'onlySpawnWhenMessageAvailable ' => false ,
359
- 'isMassagesAvailableInTheQueue ' => false ,
360
- 'shellBackgroundExpects ' => 1
386
+ 'isMassagesAvailableInTheQueue ' => true ,
387
+ 'shellBackgroundExpects ' => 1 ,
388
+ 'globalOnlySpawnWhenMessageAvailable ' => true ,
389
+ 'getOnlySpawnWhenMessageAvailableCallCount ' => 2 ,
390
+ 'isMassagesAvailableInTheQueueCallCount ' => 0
361
391
],
362
-
363
392
];
364
393
}
365
394
}
0 commit comments