Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
DataTest.php
Go to the documentation of this file.
1 <?php
7 
8 class DataTest extends \PHPUnit\Framework\TestCase
9 {
13  private static $htmlTransactionId =
14  '<a target="_blank" href="https://www%1$s.paypal.com/cgi-bin/webscr?cmd=_view-a-trans&id=%2$s">%2$s</a>';
15 
19  private static $txnId = 'XXX123123XXX';
20 
24  private $paymentMethodList;
25 
29  private $paymentMethodInstanceFactory;
30 
34  protected $configMock;
35 
39  protected $_helper;
40 
41  protected function setUp()
42  {
43  $this->paymentMethodList = $this->getMockBuilder(\Magento\Payment\Api\PaymentMethodListInterface::class)
44  ->disableOriginalConstructor()
45  ->getMockForAbstractClass();
46 
47  $this->paymentMethodInstanceFactory = $this->getMockBuilder(
48  \Magento\Payment\Model\Method\InstanceFactory::class
49  )->disableOriginalConstructor()->getMock();
50 
51  $this->configMock = $this->getMockBuilder(\Magento\Paypal\Model\Config::class)
52  ->disableOriginalConstructor()
53  ->getMock();
54 
55  $configMockFactory = $this->getMockBuilder(\Magento\Paypal\Model\ConfigFactory::class)
56  ->disableOriginalConstructor()
57  ->setMethods(['create'])
58  ->getMock();
59  $configMockFactory->expects($this->any())->method('create')->willReturn($this->configMock);
60  $this->configMock->expects($this->any())->method('setMethod')->will($this->returnSelf());
61 
62  $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
63  $this->_helper = $objectManager->getObject(
64  \Magento\Paypal\Helper\Data::class,
65  [
66  'methodCodes' => ['expressCheckout' => 'paypal_express', 'hostedPro' => 'hosted_pro'],
67  'configFactory' => $configMockFactory
68  ]
69  );
70 
71  $objectManager->setBackwardCompatibleProperty(
72  $this->_helper,
73  'paymentMethodList',
74  $this->paymentMethodList
75  );
76  $objectManager->setBackwardCompatibleProperty(
77  $this->_helper,
78  'paymentMethodInstanceFactory',
79  $this->paymentMethodInstanceFactory
80  );
81  }
82 
90  public function testGetBillingAgreementMethods($store, $quote, $paymentMethodsMap, $expectedResult)
91  {
92  $this->paymentMethodList->expects(static::once())
93  ->method('getActiveList')
94  ->with($store)
95  ->willReturn(array_column($paymentMethodsMap, 0));
96 
97  $this->paymentMethodInstanceFactory->expects(static::any())
98  ->method('create')
99  ->willReturnMap($paymentMethodsMap);
100 
101  $this->assertEquals($expectedResult, $this->_helper->getBillingAgreementMethods($store, $quote));
102  }
103 
108  {
109  $quoteMock = $this->getMockBuilder(
110  \Magento\Quote\Model\Quote::class
111  )->disableOriginalConstructor()->getMock();
112 
113  $methodMock = $this->getMockBuilder(
114  \Magento\Payment\Api\Data\PaymentMethodInterface::class
115  )->getMock();
116 
117  $agreementMethodInstanceMock = $this->getMockBuilder(
118  \Magento\Paypal\Model\Method\Agreement::class
119  )->disableOriginalConstructor()->getMock();
120  $agreementMethodInstanceMock->expects($this->any())
121  ->method('isAvailable')
122  ->willReturn(true);
123 
124  $abstractMethodInstanceMock = $this->getMockBuilder(
125  \Magento\Payment\Model\Method\Cc::class
126  )->disableOriginalConstructor()->getMock();
127 
128  $adapterMethodInstanceMock = $this->getMockBuilder(
129  \Magento\Payment\Model\Method\Adapter::class
130  )->disableOriginalConstructor()->getMock();
131 
132  return [
133  [
134  '1',
135  $quoteMock,
136  [
137  [$methodMock, $agreementMethodInstanceMock]
138  ],
139  [$agreementMethodInstanceMock]
140  ],
141  [
142  '1',
143  $quoteMock,
144  [
145  [$methodMock, $abstractMethodInstanceMock]
146  ],
147  []
148  ],
149  [
150  '1',
151  $quoteMock,
152  [
153  [$methodMock, $adapterMethodInstanceMock]
154  ],
155  []
156  ]
157  ];
158  }
159 
168  {
169  $expectedLink = sprintf(self::$htmlTransactionId, '.sandbox', self::$txnId);
170 
171  $this->configMock->expects($this->once())
172  ->method('getValue')
173  ->with('sandboxFlag')
174  ->willReturn(true);
175 
176  $this->assertEquals(
177  $expectedLink,
178  $this->_helper->getHtmlTransactionId($methodCode, self::$txnId)
179  );
180  }
181 
190  {
191  $expectedLink = sprintf(self::$htmlTransactionId, '', self::$txnId);
192 
193  $this->configMock->expects($this->once())
194  ->method('getValue')
195  ->with('sandboxFlag')
196  ->willReturn(false);
197 
198  $this->assertEquals(
199  $expectedLink,
200  $this->_helper->getHtmlTransactionId($methodCode, self::$txnId)
201  );
202  }
203 
208  {
209  return [
210  ['paypal_express'],
211  ['hosted_pro']
212  ];
213  }
214 
220  {
221  $methodCode = 'payflow_express';
222 
223  $this->assertEquals(self::$txnId, $this->_helper->getHtmlTransactionId($methodCode, self::$txnId));
224  }
225 }
$objectManager
Definition: bootstrap.php:17
$quote
testGetBillingAgreementMethods($store, $quote, $paymentMethodsMap, $expectedResult)
Definition: DataTest.php:90