40 public function testAddShortcutsButtons(array $blocks)
43 $shortcutButtonsMock = $this->getMockBuilder(ShortcutButtons::class)
44 ->setMethods([
'getLayout',
'addShortcut'])
45 ->disableOriginalConstructor()
49 $eventMock = $this->getMockBuilder(DataObject::class)
54 'getIsCatalogProduct',
57 )->disableOriginalConstructor()
60 $eventMock->expects(self::once())
61 ->method(
'getContainer')
62 ->willReturn($shortcutButtonsMock);
68 $paypalConfigMock = $this->getMockBuilder(Config::class)
69 ->disableOriginalConstructor()
72 $shortcutFactoryMock = $this->getMockBuilder(Factory::class)
73 ->setMethods([
'create'])
74 ->disableOriginalConstructor()
83 $layoutMock = $this->getMockBuilder(Layout::class)
84 ->setMethods([
'createBlock'])
85 ->disableOriginalConstructor()
89 $callIndexShortcutFactory = 0;
90 $callIndexAvailable = 0;
91 $callIndexSession = 0;
93 foreach ($blocks as $instanceName => $blockData) {
96 $paypalConfigMock->expects(self::at($callIndexAvailable))
97 ->method(
'isMethodAvailable')
98 ->with($blockData[self::PAYMENT_CODE])
99 ->willReturn($blockData[self::PAYMENT_AVAILABLE]);
101 ++$callIndexAvailable;
103 if (!$blockData[self::PAYMENT_AVAILABLE]) {
108 $params[
'shortcutValidator'] =
'test-shortcut-validator';
110 $shortcutFactoryMock->expects(self::at($callIndexShortcutFactory))
112 ->with(
'test-checkout-session')
113 ->willReturn(
'test-shortcut-validator');
115 ++$callIndexShortcutFactory;
117 if (!$blockData[self::PAYMENT_IS_BML]) {
118 $params[
'checkoutSession'] =
'test-checkout-session';
122 $blockMock = $this->getMockBuilder(Button::class)
123 ->setMethods([
'setIsInCatalogProduct',
'setShowOrPosition'])
124 ->disableOriginalConstructor()
125 ->getMockForAbstractClass();
127 $blockMock->expects(self::once())
128 ->method(
'setIsInCatalogProduct')
130 $blockMock->expects(self::once())
131 ->method(
'setShowOrPosition')
134 $layoutMock->expects(self::at($callIndexBlock))
135 ->method(
'createBlock')
136 ->with($instanceName,
'',
$params)
137 ->willReturn($blockMock);
141 $shortcutButtonsMock->expects(self::exactly($callIndexBlock))
142 ->method(
'addShortcut')
143 ->with(self::isInstanceOf(ShortcutInterface::class));
144 $shortcutButtonsMock->expects(self::exactly($callIndexBlock))
145 ->method(
'getLayout')
146 ->willReturn($layoutMock);
147 $eventMock->expects(self::exactly($callIndexSession))
148 ->method(
'getCheckoutSession')
149 ->willReturn(
'test-checkout-session');
162 \Magento\Paypal\Block\Express\InContext\Minicart\Button::class => [
163 self::PAYMENT_CODE => Config::METHOD_WPS_EXPRESS,
164 self::PAYMENT_AVAILABLE =>
true,
165 self::PAYMENT_IS_BML =>
false,
167 \Magento\Paypal\Block\Express\Shortcut::class => [
168 self::PAYMENT_CODE => Config::METHOD_WPP_EXPRESS,
169 self::PAYMENT_AVAILABLE =>
true,
170 self::PAYMENT_IS_BML =>
false,
172 \Magento\Paypal\Block\Bml\Shortcut::class => [
173 self::PAYMENT_CODE => Config::METHOD_WPP_EXPRESS,
174 self::PAYMENT_AVAILABLE =>
true,
175 self::PAYMENT_IS_BML =>
true,
177 \Magento\Paypal\Block\WpsExpress\Shortcut::class => [
178 self::PAYMENT_CODE => Config::METHOD_WPS_EXPRESS,
179 self::PAYMENT_AVAILABLE =>
true,
180 self::PAYMENT_IS_BML =>
false,
182 \Magento\Paypal\Block\WpsBml\Shortcut::class => [
183 self::PAYMENT_CODE => Config::METHOD_WPS_EXPRESS,
184 self::PAYMENT_AVAILABLE =>
true,
185 self::PAYMENT_IS_BML =>
false,
187 \Magento\Paypal\Block\PayflowExpress\Shortcut::class => [
188 self::PAYMENT_CODE => Config::METHOD_WPP_PE_EXPRESS,
189 self::PAYMENT_AVAILABLE =>
true,
190 self::PAYMENT_IS_BML =>
false,
192 \Magento\Paypal\Block\Payflow\Bml\Shortcut::class => [
193 self::PAYMENT_CODE => Config::METHOD_WPP_PE_EXPRESS,
194 self::PAYMENT_AVAILABLE =>
true,
195 self::PAYMENT_IS_BML =>
true,
201 \Magento\Paypal\Block\Express\InContext\Minicart\Button::class => [
202 self::PAYMENT_CODE => Config::METHOD_WPS_EXPRESS,
203 self::PAYMENT_AVAILABLE =>
false,
204 self::PAYMENT_IS_BML =>
false,
206 \Magento\Paypal\Block\Express\Shortcut::class => [
207 self::PAYMENT_CODE => Config::METHOD_WPP_EXPRESS,
208 self::PAYMENT_AVAILABLE =>
false,
209 self::PAYMENT_IS_BML =>
false,
211 \Magento\Paypal\Block\Bml\Shortcut::class => [
212 self::PAYMENT_CODE => Config::METHOD_WPP_EXPRESS,
213 self::PAYMENT_AVAILABLE =>
false,
214 self::PAYMENT_IS_BML =>
true,
216 \Magento\Paypal\Block\WpsExpress\Shortcut::class => [
217 self::PAYMENT_CODE => Config::METHOD_WPS_EXPRESS,
218 self::PAYMENT_AVAILABLE =>
false,
219 self::PAYMENT_IS_BML =>
false,
221 \Magento\Paypal\Block\WpsBml\Shortcut::class => [
222 self::PAYMENT_CODE => Config::METHOD_WPS_EXPRESS,
223 self::PAYMENT_AVAILABLE =>
false,
224 self::PAYMENT_IS_BML =>
false,
226 \Magento\Paypal\Block\PayflowExpress\Shortcut::class => [
227 self::PAYMENT_CODE => Config::METHOD_WPP_PE_EXPRESS,
228 self::PAYMENT_AVAILABLE =>
false,
229 self::PAYMENT_IS_BML =>
false,
231 \Magento\Paypal\Block\Payflow\Bml\Shortcut::class => [
232 self::PAYMENT_CODE => Config::METHOD_WPP_PE_EXPRESS,
233 self::PAYMENT_AVAILABLE =>
false,
234 self::PAYMENT_IS_BML =>
true,
dataProviderShortcutsButtons()
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE]