Ejemplo n.º 1
0
 /**
  * @covers \Magento\Sales\Model\Order\Payment::refund()
  */
 public function testRefund()
 {
     $amount = 204.04;
     $this->creditMemoMock->expects(static::once())->method('getBaseGrandTotal')->willReturn($amount);
     $this->creditMemoMock->expects(static::once())->method('getGrandTotal')->willReturn($amount);
     $this->creditMemoMock->expects(static::once())->method('getDoTransaction')->willReturn(true);
     $this->paymentMethodMock->expects(static::once())->method('canRefund')->willReturn(true);
     $this->mockInvoice(self::TRANSACTION_ID, 0);
     $this->creditMemoMock->expects(static::once())->method('getInvoice')->willReturn($this->invoiceMock);
     $captureTranId = self::TRANSACTION_ID . '-' . Transaction::TYPE_CAPTURE;
     $captureTransaction = $this->getMockBuilder(Transaction::class)->disableOriginalConstructor()->setMethods(['getTxnId'])->getMock();
     $refundTranId = $captureTranId . '-' . Transaction::TYPE_REFUND;
     $this->transactionManagerMock->expects(static::once())->method('generateTransactionId')->willReturn($refundTranId);
     $captureTransaction->expects(static::once())->method('getTxnId')->willReturn($captureTranId);
     $this->transactionRepositoryMock->expects(static::once())->method('getByTransactionId')->willReturn($captureTransaction);
     $this->paymentMethodMock->expects(static::once())->method('refund')->with($this->payment, $amount);
     $isOnline = true;
     $this->getTransactionBuilderMock([], $isOnline, Transaction::TYPE_REFUND, $refundTranId);
     $this->currencyMock->expects(static::once())->method('formatTxt')->willReturn($amount);
     $this->orderMock->expects(static::once())->method('getBaseCurrency')->willReturn($this->currencyMock);
     $status = 'status';
     $message = 'We refunded ' . $amount . ' online. Transaction ID: "' . $refundTranId . '"';
     $this->mockGetDefaultStatus(Order::STATE_PROCESSING, $status);
     $this->assertOrderUpdated(Order::STATE_PROCESSING, $status, $message);
     static::assertSame($this->payment, $this->payment->refund($this->creditMemoMock));
     static::assertEquals($amount, $this->payment->getData('amount_refunded'));
     static::assertEquals($amount, $this->payment->getData('base_amount_refunded_online'));
     static::assertEquals($amount, $this->payment->getData('base_amount_refunded'));
 }
Ejemplo n.º 2
0
 /**
  * {@inheritdoc}
  */
 public function refund($creditmemo)
 {
     $pluginInfo = $this->pluginList->getNext($this->subjectType, 'refund');
     if (!$pluginInfo) {
         return parent::refund($creditmemo);
     } else {
         return $this->___callPlugins('refund', func_get_args(), $pluginInfo);
     }
 }