18 private $messageStatusProcessor;
28 private $messageProcessor;
37 $this->messageStatusProcessor = $this
38 ->getMockBuilder(\
Magento\Framework\MessageQueue\MessageStatusProcessor::class)
39 ->disableOriginalConstructor()
41 $this->resource = $this->getMockBuilder(\
Magento\Framework\
App\ResourceConnection::class)
42 ->disableOriginalConstructor()
45 $objectManagerHelper =
new ObjectManagerHelper($this);
46 $this->messageProcessor = $objectManagerHelper->getObject(
47 \
Magento\Framework\MessageQueue\MessageProcessor::class,
49 'messageStatusProcessor' => $this->messageStatusProcessor,
50 'resource' => $this->resource
63 $messagesToAcknowledge = [];
64 $connection = $this->getMockBuilder(\
Magento\Framework\DB\Adapter\AdapterInterface::class)
65 ->disableOriginalConstructor()
66 ->getMockForAbstractClass();
67 $connection->expects($this->atLeastOnce())->method(
'beginTransaction');
68 $connection->expects($this->atLeastOnce())->method(
'commit');
69 $this->resource->expects($this->atLeastOnce())->method(
'getConnection')->willReturn(
$connection);
70 $queue = $this->getMockBuilder(\
Magento\Framework\MessageQueue\QueueInterface::class)
71 ->disableOriginalConstructor()
72 ->getMockForAbstractClass();
73 $configuration = $this->getMockBuilder(\
Magento\Framework\MessageQueue\ConsumerConfigurationInterface::class)
74 ->disableOriginalConstructor()
75 ->getMockForAbstractClass();
76 $configuration->expects($this->atLeastOnce())->method(
'getHandlers')->willReturn([]);
77 $this->messageStatusProcessor->expects($this->exactly(2))->method(
'acknowledgeMessages');
78 $mergedMessage = $this->getMockBuilder(\
Magento\Catalog\Api\
Data\ProductInterface::class)
79 ->disableOriginalConstructor()
80 ->getMockForAbstractClass();
81 $message = $this->getMockBuilder(\
Magento\Framework\MessageQueue\EnvelopeInterface::class)
82 ->disableOriginalConstructor()
83 ->getMockForAbstractClass();
85 $topicName => [$mergedMessage]
91 $this->messageProcessor->process(
$queue,
$configuration, $messages, $messagesToAcknowledge, $mergedMessages);
101 $topicName =
'topic';
102 $messagesToAcknowledge = [];
103 $connection = $this->getMockBuilder(\
Magento\Framework\DB\Adapter\AdapterInterface::class)
104 ->disableOriginalConstructor()
105 ->getMockForAbstractClass();
106 $connection->expects($this->atLeastOnce())->method(
'beginTransaction');
107 $connection->expects($this->never())->method(
'commit');
108 $connection->expects($this->atLeastOnce())->method(
'rollBack');
109 $this->resource->expects($this->atLeastOnce())->method(
'getConnection')->willReturn(
$connection);
110 $queue = $this->getMockBuilder(\
Magento\Framework\MessageQueue\QueueInterface::class)
111 ->disableOriginalConstructor()
112 ->getMockForAbstractClass();
113 $configuration = $this->getMockBuilder(\
Magento\Framework\MessageQueue\ConsumerConfigurationInterface::class)
114 ->disableOriginalConstructor()
115 ->getMockForAbstractClass();
116 $exception = new \Magento\Framework\MessageQueue\ConnectionLostException(
__(
'Exception Message'));
117 $configuration->expects($this->atLeastOnce())->method(
'getHandlers')->willThrowException($exception);
118 $this->messageStatusProcessor->expects($this->once())->method(
'acknowledgeMessages');
119 $mergedMessage = $this->getMockBuilder(\
Magento\Catalog\Api\
Data\ProductInterface::class)
120 ->disableOriginalConstructor()
121 ->getMockForAbstractClass();
122 $message = $this->getMockBuilder(\
Magento\Framework\MessageQueue\EnvelopeInterface::class)
123 ->disableOriginalConstructor()
124 ->getMockForAbstractClass();
126 $topicName => [$mergedMessage]
132 $this->messageProcessor->process(
$queue,
$configuration, $messages, $messagesToAcknowledge, $mergedMessages);
142 $topicName =
'topic';
143 $messagesToAcknowledge = [];
144 $connection = $this->getMockBuilder(\
Magento\Framework\DB\Adapter\AdapterInterface::class)
145 ->disableOriginalConstructor()
146 ->getMockForAbstractClass();
147 $connection->expects($this->atLeastOnce())->method(
'beginTransaction');
148 $connection->expects($this->never())->method(
'commit');
149 $connection->expects($this->atLeastOnce())->method(
'rollBack');
150 $this->resource->expects($this->atLeastOnce())->method(
'getConnection')->willReturn(
$connection);
151 $queue = $this->getMockBuilder(\
Magento\Framework\MessageQueue\QueueInterface::class)
152 ->disableOriginalConstructor()
153 ->getMockForAbstractClass();
154 $configuration = $this->getMockBuilder(\
Magento\Framework\MessageQueue\ConsumerConfigurationInterface::class)
155 ->disableOriginalConstructor()
156 ->getMockForAbstractClass();
157 $exception = new \Exception();
158 $configuration->expects($this->atLeastOnce())->method(
'getHandlers')->willThrowException($exception);
159 $this->messageStatusProcessor->expects($this->once())->method(
'acknowledgeMessages');
160 $this->messageStatusProcessor->expects($this->atLeastOnce())->method(
'rejectMessages');
161 $mergedMessage = $this->getMockBuilder(\
Magento\Catalog\Api\
Data\ProductInterface::class)
162 ->disableOriginalConstructor()
163 ->getMockForAbstractClass();
164 $message = $this->getMockBuilder(\
Magento\Framework\MessageQueue\EnvelopeInterface::class)
165 ->disableOriginalConstructor()
166 ->getMockForAbstractClass();
168 $topicName => [$mergedMessage]
174 $this->messageProcessor->process(
$queue,
$configuration, $messages, $messagesToAcknowledge, $mergedMessages);
testProcessWithException()
testProcessWithConnectionLostException()