orderMock = $this->getMockBuilder(\Magento\Sales\Api\Data\OrderInterface::class) ->disableOriginalConstructor() ->getMockForAbstractClass(); $this->creditmemoMock = $this->getMockBuilder(\Magento\Sales\Api\Data\CreditmemoInterface::class) ->disableOriginalConstructor() ->getMockForAbstractClass(); $this->invoiceMock = $this->getMockBuilder(\Magento\Sales\Api\Data\InvoiceInterface::class) ->disableOriginalConstructor() ->getMockForAbstractClass(); $this->payOperationMock = $this->getMockBuilder(\Magento\Sales\Model\Order\Invoice\PayOperation::class) ->disableOriginalConstructor() ->getMock(); $this->subject = new \Magento\Sales\Model\Order\PaymentAdapter( $this->payOperationMock ); } public function testPay() { $isOnline = true; $this->payOperationMock->expects($this->once()) ->method('execute') ->with($this->orderMock, $this->invoiceMock, $isOnline) ->willReturn($this->orderMock); $this->assertEquals( $this->orderMock, $this->subject->pay( $this->orderMock, $this->invoiceMock, $isOnline ) ); } }