Ejemplo n.º 1
0
 public function testAuthorizeTransactionPending()
 {
     $storeID = 1;
     $amount = 10;
     $baseCurrencyMock = $this->getMockBuilder('Magento\\Directory\\Model\\Currency')->disableOriginalConstructor()->setMethods(['formatTxt'])->getMock();
     $baseCurrencyMock->expects($this->once())->method('formatTxt')->willReturnCallback(function ($value) {
         return $value;
     });
     $this->orderMock->expects($this->once())->method('getStoreId')->willReturn($storeID);
     $this->orderMock->expects($this->once())->method('getBaseGrandTotal')->willReturn($amount);
     $this->orderMock->expects($this->once())->method('getBaseCurrency')->willReturn($baseCurrencyMock);
     $this->orderMock->expects($this->once())->method('setState')->with(\Magento\Sales\Model\Order::STATE_PAYMENT_REVIEW, true, "We will authorize {$amount} after the payment is approved at the payment gateway.");
     $this->paymentMethodMock->expects($this->once())->method('authorize')->with($this->payment)->willReturnSelf();
     $this->payment->setIsTransactionPending(true);
     $paymentResult = $this->payment->authorize(true, $amount);
     $this->assertInstanceOf('Magento\\Sales\\Model\\Order\\Payment', $paymentResult);
     $this->assertEquals($amount, $paymentResult->getBaseAmountAuthorized());
     $this->assertTrue($paymentResult->getIsTransactionPending());
 }
Ejemplo n.º 2
0
 /**
  * {@inheritdoc}
  */
 public function authorize($isOnline, $amount)
 {
     $pluginInfo = $this->pluginList->getNext($this->subjectType, 'authorize');
     if (!$pluginInfo) {
         return parent::authorize($isOnline, $amount);
     } else {
         return $this->___callPlugins('authorize', func_get_args(), $pluginInfo);
     }
 }
Ejemplo n.º 3
0
 /**
  * @param bool $isOnline
  * @param float $amount
  * @dataProvider authorizeDataProvider
  */
 public function testAuthorize($isOnline, $amount)
 {
     $this->paymentProcessor->expects($this->once())->method('authorize')->with($this->payment, $isOnline, $amount)->willReturn($this->payment);
     $this->assertEquals($this->payment, $this->payment->authorize($isOnline, $amount));
 }