21 private $consumerFactory;
31 private $objectManager;
36 private $writeFactoryMock;
41 private $pidConsumerManagerMock;
53 $this->pidConsumerManagerMock = $this->getMockBuilder(PidConsumerManager::class)
54 ->disableOriginalConstructor()
56 $this->consumerFactory = $this->getMockBuilder(\
Magento\Framework\MessageQueue\ConsumerFactory::class)
57 ->disableOriginalConstructor()->getMock();
58 $this->appState = $this->getMockBuilder(\
Magento\Framework\
App\State::class)
59 ->disableOriginalConstructor()->getMock();
60 $this->writeFactoryMock = $this->getMockBuilder(WriteFactory::class)
61 ->disableOriginalConstructor()
64 $this->objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
65 $this->command = $this->objectManager->getObject(
66 \
Magento\MessageQueue\Console\StartConsumerCommand::class,
68 'consumerFactory' => $this->consumerFactory,
69 'appState' => $this->appState,
70 'writeFactory' => $this->writeFactoryMock,
71 'pidConsumerManager' => $this->pidConsumerManagerMock,
97 $areaCode =
'area_code';
98 $numberOfMessages = 10;
100 $consumerName =
'consumer_name';
101 $input = $this->getMockBuilder(\Symfony\Component\Console\Input\InputInterface::class)
102 ->disableOriginalConstructor()->getMock();
103 $output = $this->getMockBuilder(\Symfony\Component\Console\Output\OutputInterface::class)
104 ->disableOriginalConstructor()->getMock();
105 $input->expects($this->once())->method(
'getArgument')
107 ->willReturn($consumerName);
108 $input->expects($this->exactly(4))->method(
'getOption')
114 )->willReturnOnConsecutiveCalls(
120 $this->appState->expects($this->exactly($runProcessExpects))->method(
'setAreaCode')->with($areaCode);
121 $consumer = $this->getMockBuilder(\
Magento\Framework\MessageQueue\ConsumerInterface::class)
122 ->disableOriginalConstructor()->getMock();
123 $this->consumerFactory->expects($this->exactly($runProcessExpects))
124 ->method(
'get')->with($consumerName, $batchSize)->willReturn($consumer);
125 $consumer->expects($this->exactly($runProcessExpects))->method(
'process')->with($numberOfMessages);
127 $this->pidConsumerManagerMock->expects($this->exactly($isRunExpects))
130 ->willReturn($isRun);
132 $this->pidConsumerManagerMock->expects($this->exactly($savePidExpects))
134 ->with($pidFilePath);
138 $this->command->run($input,
$output)
149 'pidFilePath' =>
null,
150 'savePidExpects' => 0,
153 'runProcessExpects' => 1,
157 'pidFilePath' =>
'/var/consumer.pid',
158 'savePidExpects' => 1,
161 'runProcessExpects' => 1,
165 'pidFilePath' =>
'/var/consumer.pid',
166 'savePidExpects' => 0,
169 'runProcessExpects' => 0,
183 $this->assertEquals(
'Start MessageQueue consumer', $this->command->getDescription());
189 $this->assertContains(
'To start consumer which will process', $this->command->getHelp());
testExecute( $pidFilePath, $savePidExpects, $isRunExpects, $isRun, $runProcessExpects, $expectedReturn)
const COMMAND_QUEUE_CONSUMERS_START
const OPTION_NUMBER_OF_MESSAGES