_storeManager = $this->getMockBuilder( \Magento\Store\Model\StoreManager::class )->setMethods( ['getStore'] )->disableOriginalConstructor()->getMock(); $this->_eventManager = $this->getMockBuilder( \Magento\Framework\Event\ManagerInterface::class )->setMethods( ['dispatch'] )->disableOriginalConstructor()->getMock(); $this->_escaper = $helper->getObject(\Magento\Framework\Escaper::class); $context = $helper->getObject( \Magento\Framework\View\Element\Template\Context::class, [ 'storeManager' => $this->_storeManager, 'eventManager' => $this->_eventManager, 'escaper' => $this->_escaper ] ); $this->_object = $helper->getObject(\Magento\Payment\Block\Form::class, ['context' => $context]); } /** * @expectedException \Magento\Framework\Exception\LocalizedException */ public function testGetMethodException() { $method = new \Magento\Framework\DataObject([]); $this->_object->setData('method', $method); $this->_object->getMethod(); } public function testGetMethodCode() { $method = $this->createMock(\Magento\Payment\Model\MethodInterface::class); $method->expects($this->once()) ->method('getCode') ->will($this->returnValue('method_code')); $this->_object->setData('method', $method); $this->assertEquals('method_code', $this->_object->getMethodCode()); } /** * @dataProvider getInfoDataProvider */ public function testGetInfoData($field, $value, $expected) { $methodInstance = $this->getMockBuilder(\Magento\Payment\Model\Method\AbstractMethod::class) ->setMethods(['getData']) ->disableOriginalConstructor() ->getMock(); $methodInstance->expects($this->any()) ->method('getData') ->with($field) ->will($this->returnValue($value)); $method = $this->getMockBuilder( \Magento\Payment\Model\MethodInterface::class )->getMockForAbstractClass(); $method->expects($this->any()) ->method('getInfoInstance') ->will($this->returnValue($methodInstance)); $this->_object->setData('method', $method); $this->assertEquals($expected, $this->_object->getInfoData($field)); } /** * @return array */ public function getInfoDataProvider() { return [ ['info', 'blah-blah', 'blah-blah'], ['field1', ['key' => 'val'], ['val']], [ 'some_field', ['aa', '!@#$%^&*()_#$%@^%&$%^*%&^*', 'cc'], ['aa', '!@#$%^&*()_#$%@^%&$%^*%&^*', 'cc'] ] ]; } public function testSetMethod() { $methodInterfaceMock = $this->getMockBuilder(\Magento\Payment\Model\MethodInterface::class) ->getMockForAbstractClass(); $this->assertSame($this->_object, $this->_object->setMethod($methodInterfaceMock)); } }