33 private $messageManager;
36 private $responseMock;
48 private $objectManagerMock;
51 private $couponGenerator;
58 $this->contextMock = $this->getMockBuilder(\
Magento\Backend\
App\Action\Context::class)
59 ->disableOriginalConstructor()
61 $this->requestMock = $this
62 ->getMockBuilder(\
Magento\Framework\
App\Request\Http::class)
63 ->disableOriginalConstructor()
65 $this->responseMock = $this
67 ->disableOriginalConstructor()
69 $this->messageManager = $this->createMock(\
Magento\Framework\Message\ManagerInterface::class);
70 $this->objectManagerMock = $this->getMockBuilder(ObjectManager::class)
71 ->disableOriginalConstructor()
73 $this->view = $this->createMock(\
Magento\Framework\
App\ViewInterface::class);
74 $this->contextMock->expects($this->once())
76 ->willReturn($this->view);
77 $this->contextMock->expects($this->once())
78 ->method(
'getMessageManager')
79 ->willReturn($this->messageManager);
80 $this->contextMock->expects($this->once())
81 ->method(
'getRequest')
82 ->willReturn($this->requestMock);
83 $this->contextMock->expects($this->once())
84 ->method(
'getObjectManager')
85 ->willReturn($this->objectManagerMock);
86 $this->contextMock->expects($this->once())
87 ->method(
'getResponse')
88 ->willReturn($this->responseMock);
89 $this->registryMock = $this->getMockBuilder(\
Magento\Framework\Registry::class)
90 ->disableOriginalConstructor()
92 $this->fileFactoryMock = $this->getMockBuilder(\
Magento\Framework\
App\
Response\Http\FileFactory::class)
93 ->disableOriginalConstructor()
95 $this->dateMock = $this->getMockBuilder(\
Magento\Framework\Stdlib\DateTime\Filter\Date::class)
96 ->disableOriginalConstructor()
98 $this->couponGenerator = $this->getMockBuilder(CouponGenerator::class)
99 ->disableOriginalConstructor()
102 $this->objectManagerHelper =
new ObjectManagerHelper($this);
103 $this->model = $this->objectManagerHelper->getObject(
104 \
Magento\SalesRule\Controller\Adminhtml\Promo\Quote\Generate::class,
106 'context' => $this->contextMock,
107 'coreRegistry' => $this->registryMock,
108 'fileFactory' => $this->fileFactoryMock,
109 'dateFilter' => $this->dateMock,
110 'couponGenerator' => $this->couponGenerator
120 $helperData = $this->getMockBuilder(\
Magento\Framework\Json\Helper\Data::class)
121 ->disableOriginalConstructor()
123 $this->objectManagerMock->expects($this->any())
125 ->with(\
Magento\Framework\Json\Helper\Data::class)
126 ->willReturn($helperData);
132 $this->requestMock->expects($this->once())
135 $ruleMock = $this->getMockBuilder(\
Magento\SalesRule\Model\Rule::class)
136 ->disableOriginalConstructor()
138 $this->registryMock->expects($this->once())
140 ->willReturn($ruleMock);
141 $ruleMock->expects($this->once())
144 $this->requestMock->expects($this->once())
145 ->method(
'getParams')
147 $this->couponGenerator->expects($this->once())
148 ->method(
'generateCodes')
150 ->willReturn([
'some_data',
'some_data_2']);
151 $this->messageManager->expects($this->once())
152 ->method(
'addSuccessMessage');
153 $this->responseMock->expects($this->once())
154 ->method(
'representJson')
156 $helperData->expects($this->once())
157 ->method(
'jsonEncode')
159 'messages' =>
__(
'%1 coupon(s) have been generated.', 2)
161 $layout = $this->getMockBuilder(\
Magento\Framework\View\Layout::class)
162 ->disableOriginalConstructor()
164 $this->view->expects($this->any())
165 ->method(
'getLayout')
166 ->willReturn($layout);
167 $messageBlock = $this->getMockBuilder(\
Magento\Framework\View\Element\Messages::class)
168 ->disableOriginalConstructor()
170 $layout->expects($this->once())
171 ->method(
'initMessages');
172 $layout->expects($this->once())
173 ->method(
'getMessagesBlock')
174 ->willReturn($messageBlock);
175 $messageBlock->expects($this->once())
176 ->method(
'getGroupedHtml')
177 ->willReturn(
__(
'%1 coupon(s) have been generated.', 2));
178 $this->model->execute();