21 private $configuration;
26 private $messageEncoder;
31 private $queueRepository;
36 private $callbackInvoker;
41 private $consumerConfig;
46 private $messageController;
61 private $communicationConfig;
75 $this->configuration = $this
76 ->getMockBuilder(\
Magento\Framework\MessageQueue\ConsumerConfigurationInterface::class)
77 ->disableOriginalConstructor()->getMock();
78 $this->messageEncoder = $this->getMockBuilder(\
Magento\Framework\MessageQueue\MessageEncoder::class)
79 ->disableOriginalConstructor()->getMock();
80 $this->queueRepository = $this->getMockBuilder(\
Magento\Framework\MessageQueue\QueueRepository::class)
81 ->disableOriginalConstructor()->getMock();
82 $this->resource = $this->getMockBuilder(\
Magento\Framework\
App\ResourceConnection::class)
83 ->disableOriginalConstructor()->getMock();
84 $this->logger = $this->getMockBuilder(\Psr\Log\LoggerInterface::class)
85 ->disableOriginalConstructor()->getMock();
87 $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
89 $this->callbackInvoker = new \Magento\Framework\MessageQueue\CallbackInvoker();
91 \
Magento\Framework\MessageQueue\Consumer::class,
93 'configuration' => $this->configuration,
94 'messageEncoder' => $this->messageEncoder,
95 'queueRepository' => $this->queueRepository,
96 'invoker' => $this->callbackInvoker,
97 'resource' => $this->resource,
98 'logger' => $this->logger
102 $this->consumerConfig = $this->getMockBuilder(\
Magento\Framework\MessageQueue\
Consumer\ConfigInterface::class)
103 ->disableOriginalConstructor()->getMock();
107 $this->consumerConfig
109 $this->messageController = $this->getMockBuilder(\
Magento\Framework\MessageQueue\MessageController::class)
110 ->disableOriginalConstructor()->getMock();
114 $this->messageController
116 $this->communicationConfig = $this
117 ->createMock(\
Magento\Framework\Communication\ConfigInterface::class);
120 'communicationConfig',
121 $this->communicationConfig
134 $numberOfMessages = 1;
135 $consumerName =
'consumer.name';
136 $exceptionPhrase =
new Phrase(
'Exception successfully thrown');
138 $queue = $this->getMockBuilder(\
Magento\Framework\MessageQueue\QueueInterface::class)
139 ->disableOriginalConstructor()->getMock();
140 $this->configuration->expects($this->once())->method(
'getQueue')->willReturn(
$queue);
141 $envelope = $this->getMockBuilder(\
Magento\Framework\MessageQueue\EnvelopeInterface::class)
142 ->disableOriginalConstructor()->getMock();
143 $queue->expects($this->atLeastOnce())->method(
'dequeue')->willReturn($envelope);
144 $envelope->expects($this->once())->method(
'getProperties')->willReturn(
$properties);
145 $this->communicationConfig->expects($this->once())->method(
'getTopic')->with(
$properties[
'topic_name'])
146 ->willReturn($topicConfig);
147 $this->configuration->expects($this->once())->method(
'getConsumerName')->willReturn($consumerName);
148 $this->messageController->expects($this->once())->method(
'lock')->with($envelope, $consumerName)
149 ->willThrowException(
154 $queue->expects($this->once())->method(
'acknowledge')->with($envelope);
155 $this->logger->expects($this->once())->method(
'warning')->with($exceptionPhrase->render());
157 $this->consumer->process($numberOfMessages);
testProcessWithNotFoundException()