orderMock = $this->getMockBuilder(\Magento\Sales\Api\Data\OrderInterface::class) ->disableOriginalConstructor() ->getMockForAbstractClass(); $this->creditmemoMock = $this->getMockBuilder(\Magento\Sales\Api\Data\CreditmemoInterface::class) ->disableOriginalConstructor() ->getMockForAbstractClass(); $this->refundOperationMock = $this->getMockBuilder(\Magento\Sales\Model\Order\Creditmemo\RefundOperation::class) ->disableOriginalConstructor() ->getMock(); $this->invoiceMock = $this->getMockBuilder(\Magento\Sales\Api\Data\InvoiceInterface::class) ->disableOriginalConstructor() ->getMockForAbstractClass(); $this->subject = new \Magento\Sales\Model\Order\RefundAdapter( $this->refundOperationMock ); } public function testRefund() { $isOnline = true; $this->refundOperationMock->expects($this->once()) ->method('execute') ->with($this->creditmemoMock, $this->orderMock, $isOnline) ->willReturn($this->orderMock); $this->assertEquals( $this->orderMock, $this->subject->refund($this->creditmemoMock, $this->orderMock, $isOnline) ); } }