コード例 #1
0
 public function testAfterGetOptions()
 {
     $quote = $this->getMockBuilder('Magento\\Sales\\Model\\Quote')->disableOriginalConstructor()->getMock();
     $this->sessionMock->expects($this->once())->method('getQuote')->will($this->returnValue($quote));
     $this->filterMock->expects($this->once())->method('hasRecurringItems')->with($quote)->will($this->returnValue(true));
     $this->assertArrayHasKey('hasRecurringItems', $this->payment->afterGetOptions($this->getMock('\\Magento\\Checkout\\Block\\Onepage\\Payment', array(), array(), '', false), array()));
 }
コード例 #2
0
 public function testObserve()
 {
     $quote = $this->getMockBuilder('Magento\\Sales\\Model\\Quote')->disableOriginalConstructor()->getMock();
     $event = new \Magento\Framework\Event(array('quote' => $quote, 'method_instance' => $this->getMockBuilder('Magento\\Payment\\Model\\Method\\AbstractMethod')->disableOriginalConstructor()->getMock(), 'result' => new \StdClass()));
     $this->filterMock->expects($this->once())->method('hasRecurringItems')->with($quote)->will($this->returnValue(true));
     $observer = $this->getMockBuilder('Magento\\Framework\\Event\\Observer')->disableOriginalConstructor()->getMock();
     $observer->expects($this->any())->method('getEvent')->will($this->returnValue($event));
     $this->paymentAvailabilityObserver->observe($observer);
     $this->assertFalse($event->getResult()->isAvailable);
 }
コード例 #3
0
 /**
  * @param \Magento\Framework\Event\Observer $observer
  * @return void
  */
 public function observe(\Magento\Framework\Event\Observer $observer)
 {
     /** @var \Magento\Sales\Model\Quote $quote */
     $quote = $observer->getEvent()->getQuote();
     /** @var \Magento\Payment\Model\Method\AbstractMethod $paymentMethod */
     $paymentMethod = $observer->getEvent()->getMethodInstance();
     $result = $observer->getEvent()->getResult();
     if ($quote && $this->quoteFilter->hasRecurringItems($quote) && !$this->specification->isSatisfiedBy($paymentMethod->getCode())) {
         $result->isAvailable = false;
     }
 }
コード例 #4
0
ファイル: Payment.php プロジェクト: aiesh/magento2
 /**
  * Add hasRecurringItems option
  *
  * @param \Magento\Checkout\Block\Onepage\Payment $subject
  * @param array $result
  *
  * @return array
  * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  */
 public function afterGetOptions(\Magento\Checkout\Block\Onepage\Payment $subject, array $result)
 {
     $quote = $this->session->getQuote();
     $result['hasRecurringItems'] = $quote && $this->filter->hasRecurringItems($quote);
     return $result;
 }
コード例 #5
0
ファイル: ZeroTotal.php プロジェクト: aiesh/magento2
 /**
  * @param \Magento\Payment\Model\Checks\ZeroTotal $subject
  * @param callable $proceed
  * @param PaymentMethodChecksInterface $paymentMethod
  * @param Quote $quote
  * @return bool
  *
  * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  */
 public function aroundIsApplicable(\Magento\Payment\Model\Checks\ZeroTotal $subject, \Closure $proceed, PaymentMethodChecksInterface $paymentMethod, Quote $quote)
 {
     return $proceed($paymentMethod, $quote) || $this->specification->isSatisfiedBy($paymentMethod->getCode()) && $this->filter->hasRecurringItems($quote);
 }