89 $this->requestMock = $this->getMockBuilder(\
Magento\Framework\
App\RequestInterface::class)
91 $this->creditmemoLoaderMock = $this->getMockBuilder(
92 \
Magento\Sales\Controller\Adminhtml\Order\CreditmemoLoader::class
93 )->disableOriginalConstructor()
104 $this->objectManagerMock = $this->getMockBuilder(\
Magento\Framework\ObjectManagerInterface::class)
106 $this->creditmemoRepositoryMock = $this->createMock(\
Magento\Sales\Api\CreditmemoRepositoryInterface::class);
107 $this->creditmemoMock = $this->getMockBuilder(\
Magento\Sales\Model\Order\Creditmemo::class)
108 ->disableOriginalConstructor()
110 $this->creditmemoPdfMock = $this->getMockBuilder(\
Magento\Sales\Model\Order\Pdf\Creditmemo::class)
111 ->disableOriginalConstructor()
113 $this->pdfMock = $this->getMockBuilder(\Zend_Pdf::class)
114 ->disableOriginalConstructor()
116 $this->dateTimeMock = $this->getMockBuilder(\
Magento\Framework\Stdlib\DateTime\DateTime::class)
117 ->disableOriginalConstructor()
119 $this->fileFactoryMock = $this->getMockBuilder(\
Magento\Framework\
App\
Response\Http\FileFactory::class)
120 ->disableOriginalConstructor()
122 $this->responseMock = $this->getMockBuilder(\
Magento\Framework\
App\ResponseInterface::class)
124 $this->resultForwardFactoryMock = $this->getMockBuilder(
125 \
Magento\Backend\Model\View\Result\ForwardFactory::class
126 )->disableOriginalConstructor()
127 ->setMethods([
'create'])
129 $this->resultForwardMock = $this->getMockBuilder(\
Magento\Backend\Model\View\Result\Forward::class)
130 ->disableOriginalConstructor()
133 $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
137 'request' => $this->requestMock,
138 'objectManager' => $this->objectManagerMock
142 \
Magento\Sales\Controller\Adminhtml\Order\Creditmemo\PrintAction::class,
144 'context' => $this->context,
145 'fileFactory' => $this->fileFactoryMock,
146 'resultForwardFactory' => $this->resultForwardFactoryMock,
147 'creditmemoLoader' => $this->creditmemoLoaderMock,
148 'creditmemoRepository' => $this->creditmemoRepositoryMock,
159 $date =
'2015-01-19_13-03-45';
160 $fileName =
'creditmemo2015-01-19_13-03-45.pdf';
161 $pdfContent =
'pdf0123456789';
162 $fileData = [
'type' =>
'string',
'value' => $pdfContent,
'rm' =>
true];
165 $this->objectManagerMock->expects($this->any())
169 [\
Magento\Sales\Model\Order\Creditmemo::class, [], $this->creditmemoMock],
170 [\
Magento\Sales\Model\Order\Pdf\Creditmemo::class, [], $this->creditmemoPdfMock]
173 $this->creditmemoRepositoryMock->expects($this->once())
175 ->with($creditmemoId)
176 ->willReturn($this->creditmemoMock);
177 $this->creditmemoPdfMock->expects($this->once())
179 ->with([$this->creditmemoMock])
180 ->willReturn($this->pdfMock);
181 $this->objectManagerMock->expects($this->once())
183 ->with(\
Magento\Framework\Stdlib\DateTime\DateTime::class)
184 ->willReturn($this->dateTimeMock);
185 $this->dateTimeMock->expects($this->once())
187 ->with(
'Y-m-d_H-i-s')
189 $this->pdfMock->expects($this->once())
191 ->willReturn($pdfContent);
192 $this->fileFactoryMock->expects($this->once())
197 \
Magento\Framework\
App\Filesystem\DirectoryList::VAR_DIR,
200 ->willReturn($this->responseMock);
202 $this->assertInstanceOf(
203 \
Magento\Framework\
App\ResponseInterface::class,
204 $this->printAction->execute()
215 $this->resultForwardFactoryMock->expects($this->once())
217 ->willReturn($this->resultForwardMock);
218 $this->resultForwardMock->expects($this->once())
223 $this->assertInstanceOf(
224 \
Magento\Backend\Model\View\Result\Forward::class,
225 $this->printAction->execute()
238 $this->requestMock->expects($this->any())
242 [
'order_id',
null, $orderId],
243 [
'creditmemo_id',
null, $creditmemoId],
245 [
'invoice_id',
null, $invoiceId]
248 $this->creditmemoLoaderMock->expects($this->once())
249 ->method(
'setOrderId')
252 $this->creditmemoLoaderMock->expects($this->once())
253 ->method(
'setCreditmemoId')
254 ->with($creditmemoId)
256 $this->creditmemoLoaderMock->expects($this->once())
257 ->method(
'setCreditmemo')
260 $this->creditmemoLoaderMock->expects($this->once())
261 ->method(
'setInvoiceId')
264 $this->creditmemoLoaderMock->expects($this->once())
$resultForwardFactoryMock
$creditmemoRepositoryMock
prepareTestExecute($creditmemoId=null)
testExecuteNoCreditmemoId()