@@ -146,22 +146,21 @@ public function testRun(
146146 ) {
147147 $ consumerName = 'consumerName ' ;
148148
149- $ this ->deploymentConfigMock -> expects ( $ this -> exactly ( 3 ))
149+ $ this ->deploymentConfigMock
150150 ->method ('get ' )
151151 ->willReturnMap (
152152 [
153153 ['cron_consumers_runner/cron_run ' , true , true ],
154154 ['cron_consumers_runner/max_messages ' , 10000 , $ maxMessages ],
155155 ['cron_consumers_runner/consumers ' , [], $ allowedConsumers ],
156+ ['queue/only_spawn_when_message_available ' , null , 0 ],
156157 ]
157158 );
158159
159160 /** @var ConsumerConfigInterface|MockObject $firstCunsumer */
160161 $ consumer = $ this ->getMockBuilder (ConsumerConfigItemInterface::class)
161162 ->getMockForAbstractClass ();
162- $ consumer ->expects ($ this ->any ())
163- ->method ('getName ' )
164- ->willReturn ($ consumerName );
163+ $ consumer ->method ('getName ' )->willReturn ($ consumerName );
165164
166165 $ this ->phpExecutableFinderMock ->expects ($ this ->once ())
167166 ->method ('find ' )
@@ -276,39 +275,42 @@ public function runDataProvider()
276275 * @param boolean $onlySpawnWhenMessageAvailable
277276 * @param boolean $isMassagesAvailableInTheQueue
278277 * @param int $shellBackgroundExpects
278+ * @param boolean $globalOnlySpawnWhenMessageAvailable
279+ * @param int $getOnlySpawnWhenMessageAvailableCallCount
280+ * @param int $isMassagesAvailableInTheQueueCallCount
279281 * @dataProvider runBasedOnOnlySpawnWhenMessageAvailableConsumerConfigurationDataProvider
280282 */
281283 public function testRunBasedOnOnlySpawnWhenMessageAvailableConsumerConfiguration (
282284 $ onlySpawnWhenMessageAvailable ,
283285 $ isMassagesAvailableInTheQueue ,
284- $ shellBackgroundExpects
286+ $ shellBackgroundExpects ,
287+ $ globalOnlySpawnWhenMessageAvailable ,
288+ $ getOnlySpawnWhenMessageAvailableCallCount ,
289+ $ isMassagesAvailableInTheQueueCallCount
285290 ) {
286291 $ consumerName = 'consumerName ' ;
287292 $ connectionName = 'connectionName ' ;
288293 $ queueName = 'queueName ' ;
289- $ this ->deploymentConfigMock ->expects ($ this ->exactly (3 ))
294+ $ this ->deploymentConfigMock ->expects ($ this ->exactly (4 ))
290295 ->method ('get ' )
291296 ->willReturnMap (
292297 [
293298 ['cron_consumers_runner/cron_run ' , true , true ],
294299 ['cron_consumers_runner/max_messages ' , 10000 , 1000 ],
295300 ['cron_consumers_runner/consumers ' , [], []],
301+ ['queue/only_spawn_when_message_available ' , true , $ globalOnlySpawnWhenMessageAvailable ],
296302 ]
297303 );
298304
299305 /** @var ConsumerConfigInterface|MockObject $firstCunsumer */
300306 $ consumer = $ this ->getMockBuilder (ConsumerConfigItemInterface::class)
301307 ->getMockForAbstractClass ();
302- $ consumer ->expects ($ this ->any ())
303- ->method ('getName ' )
304- ->willReturn ($ consumerName );
308+ $ consumer ->method ('getName ' )->willReturn ($ consumerName );
305309 $ consumer ->expects ($ this ->once ())
306310 ->method ('getConnection ' )
307311 ->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 ))
312314 ->method ('getOnlySpawnWhenMessageAvailable ' )
313315 ->willReturn ($ onlySpawnWhenMessageAvailable );
314316 $ this ->consumerConfigMock ->expects ($ this ->once ())
@@ -323,7 +325,7 @@ public function testRunBasedOnOnlySpawnWhenMessageAvailableConsumerConfiguration
323325 ->method ('isLocked ' )
324326 ->willReturn (false );
325327
326- $ this ->checkIsAvailableMessagesMock ->expects ($ this ->exactly (( int ) $ onlySpawnWhenMessageAvailable ))
328+ $ this ->checkIsAvailableMessagesMock ->expects ($ this ->exactly ($ isMassagesAvailableInTheQueueCallCount ))
327329 ->method ('execute ' )
328330 ->willReturn ($ isMassagesAvailableInTheQueue );
329331
@@ -342,24 +344,51 @@ public function runBasedOnOnlySpawnWhenMessageAvailableConsumerConfigurationData
342344 [
343345 'onlySpawnWhenMessageAvailable ' => true ,
344346 'isMassagesAvailableInTheQueue ' => true ,
345- 'shellBackgroundExpects ' => 1
347+ 'shellBackgroundExpects ' => 1 ,
348+ 'globalOnlySpawnWhenMessageAvailable ' => false ,
349+ 'getOnlySpawnWhenMessageAvailableCallCount ' => 1 ,
350+ 'isMassagesAvailableInTheQueueCallCount ' => 1
346351 ],
347352 [
348353 'onlySpawnWhenMessageAvailable ' => true ,
349354 'isMassagesAvailableInTheQueue ' => false ,
350- 'shellBackgroundExpects ' => 0
355+ 'shellBackgroundExpects ' => 0 ,
356+ 'globalOnlySpawnWhenMessageAvailable ' => false ,
357+ 'getOnlySpawnWhenMessageAvailableCallCount ' => 1 ,
358+ 'isMassagesAvailableInTheQueueCallCount ' => 1
351359 ],
352360 [
353361 'onlySpawnWhenMessageAvailable ' => false ,
354362 '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
356383 ],
357384 [
358385 'onlySpawnWhenMessageAvailable ' => false ,
359- 'isMassagesAvailableInTheQueue ' => false ,
360- 'shellBackgroundExpects ' => 1
386+ 'isMassagesAvailableInTheQueue ' => true ,
387+ 'shellBackgroundExpects ' => 1 ,
388+ 'globalOnlySpawnWhenMessageAvailable ' => true ,
389+ 'getOnlySpawnWhenMessageAvailableCallCount ' => 2 ,
390+ 'isMassagesAvailableInTheQueueCallCount ' => 0
361391 ],
362-
363392 ];
364393 }
365394}
0 commit comments