@@ -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 ' , 0 , 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,40 @@ 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
279
280
* @dataProvider runBasedOnOnlySpawnWhenMessageAvailableConsumerConfigurationDataProvider
280
281
*/
281
282
public function testRunBasedOnOnlySpawnWhenMessageAvailableConsumerConfiguration (
282
283
$ onlySpawnWhenMessageAvailable ,
283
284
$ isMassagesAvailableInTheQueue ,
284
- $ shellBackgroundExpects
285
+ $ shellBackgroundExpects ,
286
+ $ globalOnlySpawnWhenMessageAvailable ,
287
+ $ getOnlySpawnWhenMessageAvailableCallCount
285
288
) {
286
289
$ consumerName = 'consumerName ' ;
287
290
$ connectionName = 'connectionName ' ;
288
291
$ queueName = 'queueName ' ;
289
- $ this ->deploymentConfigMock ->expects ($ this ->exactly (3 ))
292
+ $ this ->deploymentConfigMock ->expects ($ this ->exactly (4 ))
290
293
->method ('get ' )
291
294
->willReturnMap (
292
295
[
293
296
['cron_consumers_runner/cron_run ' , true , true ],
294
297
['cron_consumers_runner/max_messages ' , 10000 , 1000 ],
295
298
['cron_consumers_runner/consumers ' , [], []],
299
+ ['queue/only_spawn_when_message_available ' , 0 , $ globalOnlySpawnWhenMessageAvailable ],
296
300
]
297
301
);
298
302
299
303
/** @var ConsumerConfigInterface|MockObject $firstCunsumer */
300
304
$ consumer = $ this ->getMockBuilder (ConsumerConfigItemInterface::class)
301
305
->getMockForAbstractClass ();
302
- $ consumer ->expects ($ this ->any ())
303
- ->method ('getName ' )
304
- ->willReturn ($ consumerName );
306
+ $ consumer ->method ('getName ' )->willReturn ($ consumerName );
305
307
$ consumer ->expects ($ this ->once ())
306
308
->method ('getConnection ' )
307
309
->willReturn ($ connectionName );
308
- $ consumer ->expects ($ this ->any ())
309
- ->method ('getQueue ' )
310
- ->willReturn ($ queueName );
311
- $ consumer ->expects ($ this ->once ())
310
+ $ consumer ->method ('getQueue ' )->willReturn ($ queueName );
311
+ $ consumer ->expects ($ this ->exactly ($ getOnlySpawnWhenMessageAvailableCallCount ))
312
312
->method ('getOnlySpawnWhenMessageAvailable ' )
313
313
->willReturn ($ onlySpawnWhenMessageAvailable );
314
314
$ this ->consumerConfigMock ->expects ($ this ->once ())
@@ -342,24 +342,45 @@ public function runBasedOnOnlySpawnWhenMessageAvailableConsumerConfigurationData
342
342
[
343
343
'onlySpawnWhenMessageAvailable ' => true ,
344
344
'isMassagesAvailableInTheQueue ' => true ,
345
- 'shellBackgroundExpects ' => 1
345
+ 'shellBackgroundExpects ' => 1 ,
346
+ 'globalOnlySpawnWhenMessageAvailable ' => false ,
347
+ 'getOnlySpawnWhenMessageAvailableCallCount ' => 1
346
348
],
347
349
[
348
350
'onlySpawnWhenMessageAvailable ' => true ,
349
351
'isMassagesAvailableInTheQueue ' => false ,
350
- 'shellBackgroundExpects ' => 0
352
+ 'shellBackgroundExpects ' => 0 ,
353
+ 'globalOnlySpawnWhenMessageAvailable ' => false ,
354
+ 'getOnlySpawnWhenMessageAvailableCallCount ' => 1
351
355
],
352
356
[
353
357
'onlySpawnWhenMessageAvailable ' => false ,
354
358
'isMassagesAvailableInTheQueue ' => true ,
355
- 'shellBackgroundExpects ' => 1
359
+ 'shellBackgroundExpects ' => 1 ,
360
+ 'globalOnlySpawnWhenMessageAvailable ' => false ,
361
+ 'getOnlySpawnWhenMessageAvailableCallCount ' => 1
356
362
],
357
363
[
358
364
'onlySpawnWhenMessageAvailable ' => false ,
359
365
'isMassagesAvailableInTheQueue ' => false ,
360
- 'shellBackgroundExpects ' => 1
366
+ 'shellBackgroundExpects ' => 1 ,
367
+ 'globalOnlySpawnWhenMessageAvailable ' => false ,
368
+ 'getOnlySpawnWhenMessageAvailableCallCount ' => 1
369
+ ],
370
+ [
371
+ 'onlySpawnWhenMessageAvailable ' => true ,
372
+ 'isMassagesAvailableInTheQueue ' => true ,
373
+ 'shellBackgroundExpects ' => 1 ,
374
+ 'globalOnlySpawnWhenMessageAvailable ' => true ,
375
+ 'getOnlySpawnWhenMessageAvailableCallCount ' => 0
376
+ ],
377
+ [
378
+ 'onlySpawnWhenMessageAvailable ' => true ,
379
+ 'isMassagesAvailableInTheQueue ' => true ,
380
+ 'shellBackgroundExpects ' => 1 ,
381
+ 'globalOnlySpawnWhenMessageAvailable ' => false ,
382
+ 'getOnlySpawnWhenMessageAvailableCallCount ' => 1
361
383
],
362
-
363
384
];
364
385
}
365
386
}
0 commit comments