Example #1
0
 public function testAddPaypalShortcuts()
 {
     $layoutMock = $this->getMockBuilder('Magento\\Framework\\View\\Layout')->setMethods(array('createBlock'))->disableOriginalConstructor()->getMock();
     $blocks = ['Magento\\Paypal\\Block\\Express\\Shortcut' => 'Magento\\Paypal\\Block\\Express\\Shortcut', 'Magento\\Paypal\\Block\\PayflowExpress\\Shortcut' => 'Magento\\Paypal\\Block\\Express\\Shortcut', 'Magento\\Paypal\\Block\\Bml\\Shortcut' => 'Magento\\Paypal\\Block\\Bml\\Shortcut', 'Magento\\Paypal\\Block\\Payflow\\Bml\\Shortcut' => 'Magento\\Paypal\\Block\\Bml\\Shortcut'];
     $blockInstances = array();
     $atPosition = 0;
     foreach ($blocks as $blockName => $blockInstance) {
         $block = $this->getMockBuilder($blockInstance)->setMethods(null)->disableOriginalConstructor()->getMock();
         $blockInstances[$blockName] = $block;
         $layoutMock->expects(new MethodInvokedAtIndex($atPosition))->method('createBlock')->with($blockName)->will($this->returnValue($block));
         $atPosition++;
     }
     $shortcutButtonsMock = $this->getMockBuilder('Magento\\Catalog\\Block\\ShortcutButtons')->setMethods(array('getLayout', 'addShortcut'))->disableOriginalConstructor()->getMock();
     $shortcutButtonsMock->expects($this->any())->method('getLayout')->will($this->returnValue($layoutMock));
     $atPosition = 0;
     foreach (array_keys($blocks) as $blockName) {
         $shortcutButtonsMock->expects(new MethodInvokedAtIndex($atPosition))->method('addShortcut')->with($this->identicalTo($blockInstances[$blockName]));
         $atPosition++;
     }
     $this->_event->setContainer($shortcutButtonsMock);
     $this->_model->addPaypalShortcuts($this->_observer);
     foreach ($blockInstances as $instance) {
         $this->assertEquals(\Magento\Paypal\Model\Observer::SHORTCUT_TEMPLATE, $instance->getTemplate());
     }
 }
Example #2
0
 /**
  * @param array $paymentMethodsAvailability
  * @param array $blocks
  * @dataProvider addAvailabilityOfMethodsDataProvider
  */
 public function testAddPaypalShortcuts($paymentMethodsAvailability, $blocks)
 {
     $this->paypalConfigMock->expects($this->any())->method('isMethodAvailable')->will($this->returnValueMap($paymentMethodsAvailability));
     $layoutMock = $this->getMockBuilder('Magento\\Framework\\View\\Layout')->setMethods(['createBlock'])->disableOriginalConstructor()->getMock();
     $shortcutButtonsMock = $this->getMockBuilder('Magento\\Catalog\\Block\\ShortcutButtons')->setMethods(['getLayout', 'addShortcut'])->disableOriginalConstructor()->getMock();
     $blockInstances = [];
     $atPosition = 0;
     foreach ($blocks as $blockName => $blockInstance) {
         if ($this->paypalConfigMock->isMethodAvailable($blockInstance[1])) {
             $block = $this->getMockBuilder($blockInstance[0])->setMethods(null)->disableOriginalConstructor()->getMock();
             $blockInstances[$blockName] = $block;
             $layoutMock->expects(new MethodInvokedAtIndex($atPosition))->method('createBlock')->with($blockName)->will($this->returnValue($block));
             $atPosition++;
         }
     }
     $shortcutButtonsMock->expects($this->any())->method('getLayout')->will($this->returnValue($layoutMock));
     $atPosition = 0;
     foreach ($blocks as $blockName => $blockInstance) {
         if ($this->paypalConfigMock->isMethodAvailable($blockInstance[1])) {
             $shortcutButtonsMock->expects(new MethodInvokedAtIndex($atPosition))->method('addShortcut')->with($this->identicalTo($blockInstances[$blockName]));
             $atPosition++;
         }
     }
     $this->_event->setContainer($shortcutButtonsMock);
     $this->_model->addPaypalShortcuts($this->_observer);
 }