23 private $creditmemoRepositoryMock;
28 private $creditmemoFactoryMock;
33 private $orderFactoryMock;
38 private $invoiceRepositoryMock;
43 private $eventManagerMock;
53 private $messageManagerMock;
58 private $registryMock;
68 private $stockConfiguration;
73 $this->creditmemoRepositoryMock = $this->getMockBuilder(\
Magento\Sales\Api\CreditmemoRepositoryInterface::class)
74 ->disableOriginalConstructor()
76 $this->creditmemoFactoryMock = $this->createMock(\
Magento\Sales\Model\Order\CreditmemoFactory::class);
77 $this->orderFactoryMock = $this->getMockBuilder(\
Magento\Sales\Model\OrderFactory::class)
78 ->disableOriginalConstructor()
79 ->setMethods([
'create'])
81 $this->invoiceRepositoryMock = $this->getMockBuilder(\
Magento\Sales\Api\InvoiceRepositoryInterface::class)
82 ->disableOriginalConstructor()
83 ->setMethods([
'create'])
84 ->getMockForAbstractClass();
85 $this->eventManagerMock = $this->getMockBuilder(\
Magento\Framework\Event\Manager::class)
86 ->disableOriginalConstructor()
89 $this->sessionMock = $this->getMockBuilder(\
Magento\Backend\Model\Session::class)
90 ->disableOriginalConstructor()
93 $this->messageManagerMock = $this->getMockBuilder(\
Magento\Framework\Message\Manager::class)
94 ->disableOriginalConstructor()
97 $this->registryMock = $this->getMockBuilder(\
Magento\Framework\Registry::class)
98 ->disableOriginalConstructor()
101 $this->helperMock = $this->getMockBuilder(\
Magento\CatalogInventory\Helper\Data::class)
102 ->disableOriginalConstructor()
106 $this->stockConfiguration = $this->getMockBuilder(\
Magento\CatalogInventory\Model\Configuration::class)
107 ->disableOriginalConstructor()
111 $this->loader = new \Magento\Sales\Controller\Adminhtml\Order\CreditmemoLoader(
112 $this->creditmemoRepositoryMock,
113 $this->creditmemoFactoryMock,
114 $this->orderFactoryMock,
115 $this->invoiceRepositoryMock,
116 $this->eventManagerMock,
118 $this->messageManagerMock,
120 $this->stockConfiguration,
127 $this->loader->setCreditmemoId(1);
128 $this->loader->setOrderId(1);
129 $this->loader->setCreditmemo(
'test');
131 $creditmemoMock = $this->getMockBuilder(\
Magento\Sales\Model\Order\Creditmemo::class)
132 ->disableOriginalConstructor()
135 $this->creditmemoRepositoryMock->expects($this->once())
137 ->willReturn($creditmemoMock);
139 $this->assertInstanceOf(\
Magento\Sales\Model\Order\Creditmemo::class, $this->loader->load());
146 $this->loader->setCreditmemoId(0);
147 $this->loader->setOrderId($orderId);
148 $this->loader->setCreditmemo(
'test');
149 $this->loader->setInvoiceId($invoiceId);
151 $orderMock = $this->getMockBuilder(\
Magento\Sales\Model\Order::class)
152 ->disableOriginalConstructor()
155 $orderMock->expects($this->once())
158 $orderMock->expects($this->once())
160 ->willReturn($orderId);
161 $orderMock->expects($this->once())
162 ->method(
'canCreditmemo')
164 $this->orderFactoryMock->expects($this->once())
166 ->willReturn($orderMock);
167 $invoiceMock = $this->getMockBuilder(\
Magento\Sales\Model\Order\Invoice::class)
168 ->disableOriginalConstructor()
171 $invoiceMock->expects($this->any())
175 $invoiceMock->expects($this->any())
178 $this->invoiceRepositoryMock->expects($this->once())
180 ->willReturn($invoiceMock);
182 $this->assertFalse($this->loader->load());
190 $data = [
'items' => [1 => [
'qty' => $qty,
'back_to_stock' =>
true]]];
191 $this->loader->setCreditmemoId(0);
192 $this->loader->setOrderId($orderId);
193 $this->loader->setCreditmemo(
$data);
194 $this->loader->setInvoiceId($invoiceId);
196 $orderMock = $this->getMockBuilder(\
Magento\Sales\Model\Order::class)
197 ->disableOriginalConstructor()
200 $orderMock->expects($this->once())
203 $orderMock->expects($this->once())
205 ->willReturn($orderId);
206 $orderMock->expects($this->once())
207 ->method(
'canCreditmemo')
209 $this->orderFactoryMock->expects($this->once())
211 ->willReturn($orderMock);
212 $invoiceMock = $this->getMockBuilder(\
Magento\Sales\Model\Order\Invoice::class)
213 ->disableOriginalConstructor()
215 $invoiceMock->expects($this->any())
218 $invoiceMock->expects($this->any())
221 $this->invoiceRepositoryMock->expects($this->once())
223 ->willReturn($invoiceMock);
224 $creditmemoMock = $this->getMockBuilder(\
Magento\Sales\Model\Order\Creditmemo::class)
225 ->disableOriginalConstructor()
229 $orderItemMock = $this->getMockBuilder(\
Magento\Sales\Model\Order\Item::class)
230 ->disableOriginalConstructor()
233 $creditmemoItemMock = $this->getMockBuilder(\
Magento\Sales\Model\Order\Creditmemo\Item::class)
234 ->disableOriginalConstructor()
237 $creditmemoItemMock->expects($this->any())
238 ->method(
'getOrderItem')
239 ->willReturn($orderItemMock);
240 $items = [$creditmemoItemMock, $creditmemoItemMock, $creditmemoItemMock];
241 $creditmemoMock->expects($this->any())
242 ->method(
'getAllItems')
244 $data[
'qtys'] = [1 => $qty];
245 $this->creditmemoFactoryMock->expects($this->any())
246 ->method(
'createByInvoice')
247 ->with($invoiceMock,
$data)
248 ->willReturn($creditmemoMock);
250 $this->assertEquals($creditmemoMock, $this->loader->load());
testLoadCannotCreditmemo()