FormTest.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Payment\Test\Unit\Block;
  7. use Magento\Framework\DataObject;
  8. class FormTest extends \PHPUnit\Framework\TestCase
  9. {
  10. /**
  11. * @var \PHPUnit_Framework_MockObject_MockObject
  12. */
  13. protected $_object;
  14. /**
  15. * @var \PHPUnit_Framework_MockObject_MockObject
  16. */
  17. protected $_storeManager;
  18. /**
  19. * @var \PHPUnit_Framework_MockObject_MockObject
  20. */
  21. protected $_eventManager;
  22. /**
  23. * @var \PHPUnit_Framework_MockObject_MockObject
  24. */
  25. protected $_escaper;
  26. protected function setUp()
  27. {
  28. $helper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
  29. $this->_storeManager = $this->getMockBuilder(
  30. \Magento\Store\Model\StoreManager::class
  31. )->setMethods(
  32. ['getStore']
  33. )->disableOriginalConstructor()->getMock();
  34. $this->_eventManager = $this->getMockBuilder(
  35. \Magento\Framework\Event\ManagerInterface::class
  36. )->setMethods(
  37. ['dispatch']
  38. )->disableOriginalConstructor()->getMock();
  39. $this->_escaper = $helper->getObject(\Magento\Framework\Escaper::class);
  40. $context = $helper->getObject(
  41. \Magento\Framework\View\Element\Template\Context::class,
  42. [
  43. 'storeManager' => $this->_storeManager,
  44. 'eventManager' => $this->_eventManager,
  45. 'escaper' => $this->_escaper
  46. ]
  47. );
  48. $this->_object = $helper->getObject(\Magento\Payment\Block\Form::class, ['context' => $context]);
  49. }
  50. /**
  51. * @expectedException \Magento\Framework\Exception\LocalizedException
  52. */
  53. public function testGetMethodException()
  54. {
  55. $method = new \Magento\Framework\DataObject([]);
  56. $this->_object->setData('method', $method);
  57. $this->_object->getMethod();
  58. }
  59. public function testGetMethodCode()
  60. {
  61. $method = $this->createMock(\Magento\Payment\Model\MethodInterface::class);
  62. $method->expects($this->once())
  63. ->method('getCode')
  64. ->will($this->returnValue('method_code'));
  65. $this->_object->setData('method', $method);
  66. $this->assertEquals('method_code', $this->_object->getMethodCode());
  67. }
  68. /**
  69. * @dataProvider getInfoDataProvider
  70. */
  71. public function testGetInfoData($field, $value, $expected)
  72. {
  73. $methodInstance = $this->getMockBuilder(\Magento\Payment\Model\Method\AbstractMethod::class)
  74. ->setMethods(['getData'])
  75. ->disableOriginalConstructor()
  76. ->getMock();
  77. $methodInstance->expects($this->any())
  78. ->method('getData')
  79. ->with($field)
  80. ->will($this->returnValue($value));
  81. $method = $this->getMockBuilder(
  82. \Magento\Payment\Model\MethodInterface::class
  83. )->getMockForAbstractClass();
  84. $method->expects($this->any())
  85. ->method('getInfoInstance')
  86. ->will($this->returnValue($methodInstance));
  87. $this->_object->setData('method', $method);
  88. $this->assertEquals($expected, $this->_object->getInfoData($field));
  89. }
  90. /**
  91. * @return array
  92. */
  93. public function getInfoDataProvider()
  94. {
  95. return [
  96. ['info', 'blah-blah', 'blah-blah'],
  97. ['field1', ['key' => 'val'], ['val']],
  98. [
  99. 'some_field',
  100. ['aa', '!@#$%^&*()_#$%@^%&$%^*%&^*', 'cc'],
  101. ['aa', '!@#$%^&amp;*()_#$%@^%&amp;$%^*%&amp;^*', 'cc']
  102. ]
  103. ];
  104. }
  105. public function testSetMethod()
  106. {
  107. $methodInterfaceMock = $this->getMockBuilder(\Magento\Payment\Model\MethodInterface::class)
  108. ->getMockForAbstractClass();
  109. $this->assertSame($this->_object, $this->_object->setMethod($methodInterfaceMock));
  110. }
  111. }