16 private $returnTOStock;
21 private $returnProcessorMock;
26 private $creditmemoRepositoryMock;
31 private $invoiceRepositoryMock;
36 private $orderRepositoryMock;
41 private $refundInvoiceMock;
46 private $creditmemoCreationArgumentsMock;
56 private $creditmemoMock;
66 private $extensionAttributesMock;
71 private $stockConfigurationMock;
75 $this->returnProcessorMock = $this->getMockBuilder(\
Magento\SalesInventory\Model\Order\ReturnProcessor::class)
76 ->disableOriginalConstructor()
78 $this->creditmemoRepositoryMock = $this->getMockBuilder(\
Magento\Sales\Api\CreditmemoRepositoryInterface::class)
79 ->disableOriginalConstructor()
81 $this->orderRepositoryMock = $this->getMockBuilder(\
Magento\Sales\Api\OrderRepositoryInterface::class)
82 ->disableOriginalConstructor()
84 $this->invoiceRepositoryMock = $this->getMockBuilder(\
Magento\Sales\Api\InvoiceRepositoryInterface::class)
85 ->disableOriginalConstructor()
87 $this->refundInvoiceMock = $this->getMockBuilder(\
Magento\Sales\Api\RefundInvoiceInterface::class)
88 ->disableOriginalConstructor()
90 $this->creditmemoCreationArgumentsMock = $this->getMockBuilder(
91 \
Magento\Sales\Api\Data\CreditmemoCreationArgumentsInterface::class
92 )->disableOriginalConstructor()
94 $this->extensionAttributesMock = $this->getMockBuilder(
95 \
Magento\Sales\Api\Data\CreditmemoCreationArgumentsExtensionInterface::class
96 )->disableOriginalConstructor()
97 ->setMethods([
'getReturnToStockItems'])
98 ->getMockForAbstractClass();
99 $this->orderMock = $this->getMockBuilder(\
Magento\Sales\Api\Data\OrderInterface::class)
100 ->disableOriginalConstructor()
102 $this->creditmemoMock = $this->getMockBuilder(\
Magento\Sales\Api\Data\CreditmemoInterface::class)
103 ->disableOriginalConstructor()
105 $this->invoiceMock = $this->getMockBuilder(\
Magento\Sales\Api\Data\InvoiceInterface::class)
106 ->disableOriginalConstructor()
108 $this->stockConfigurationMock = $this->getMockBuilder(
109 \
Magento\CatalogInventory\Api\StockConfigurationInterface::class
110 )->disableOriginalConstructor()
113 $this->returnTOStock = new \Magento\SalesInventory\Model\Plugin\Order\ReturnToStockInvoice(
114 $this->returnProcessorMock,
115 $this->creditmemoRepositoryMock,
116 $this->orderRepositoryMock,
117 $this->invoiceRepositoryMock,
118 $this->stockConfigurationMock
127 $returnToStockItems = [1];
129 $this->creditmemoCreationArgumentsMock->expects($this->exactly(3))
130 ->method(
'getExtensionAttributes')
131 ->willReturn($this->extensionAttributesMock);
133 $this->invoiceRepositoryMock->expects($this->once())
136 ->willReturn($this->invoiceMock);
138 $this->extensionAttributesMock->expects($this->exactly(2))
139 ->method(
'getReturnToStockItems')
140 ->willReturn($returnToStockItems);
142 $this->orderRepositoryMock->expects($this->once())
145 ->willReturn($this->orderMock);
147 $this->creditmemoRepositoryMock->expects($this->once())
149 ->with($creditmemoId)
150 ->willReturn($this->creditmemoMock);
152 $this->returnProcessorMock->expects($this->once())
154 ->with($this->creditmemoMock, $this->orderMock, $returnToStockItems);
156 $this->invoiceMock->expects($this->once())
157 ->method(
'getOrderId')
158 ->willReturn($orderId);
160 $this->stockConfigurationMock->expects($this->once())
161 ->method(
'isAutoReturnEnabled')
165 $this->returnTOStock->afterExecute(
166 $this->refundInvoiceMock,
174 $this->creditmemoCreationArgumentsMock