/** * @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->execute($this->_observer); }
/** * @param string|null $methodCode * @param bool $expectedFlag * * @dataProvider isMethodAvailableDataProvider */ public function testIsMethodAvailable($methodCode, $expectedFlag) { $this->config->setMethod('settedMethod'); $this->scopeConfigMock->expects($this->once())->method('isSetFlag')->with($expectedFlag); $this->config->isMethodAvailable($methodCode); }