RequestTest.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Authorizenet\Test\Unit\Model\Directpost;
  7. use Magento\Authorizenet\Model\Directpost\Request;
  8. use Magento\Framework\Intl\DateTimeFactory;
  9. use PHPUnit_Framework_MockObject_MockObject as MockObject;
  10. class RequestTest extends \PHPUnit\Framework\TestCase
  11. {
  12. /**
  13. * @var DateTimeFactory|MockObject
  14. */
  15. private $dateTimeFactory;
  16. /**
  17. * @var Request
  18. */
  19. private $requestModel;
  20. protected function setUp()
  21. {
  22. $this->dateTimeFactory = $this->getMockBuilder(DateTimeFactory::class)
  23. ->disableOriginalConstructor()
  24. ->getMock();
  25. $dateTime = new \DateTime('2016-07-05 00:00:00', new \DateTimeZone('UTC'));
  26. $this->dateTimeFactory->method('create')
  27. ->willReturn($dateTime);
  28. $this->requestModel = new Request([], $this->dateTimeFactory);
  29. }
  30. /**
  31. * @param string $signatureKey
  32. * @param string $expectedHash
  33. * @dataProvider signRequestDataProvider
  34. */
  35. public function testSignRequestData(string $signatureKey, string $expectedHash)
  36. {
  37. /** @var \Magento\Authorizenet\Model\Directpost $paymentMethod */
  38. $paymentMethod = $this->createMock(\Magento\Authorizenet\Model\Directpost::class);
  39. $paymentMethod->method('getConfigData')
  40. ->willReturnMap(
  41. [
  42. ['test', null, true],
  43. ['login', null, 'login'],
  44. ['trans_key', null, 'trans_key'],
  45. ['signature_key', null, $signatureKey],
  46. ]
  47. );
  48. $this->requestModel->setConstantData($paymentMethod);
  49. $this->requestModel->signRequestData();
  50. $signHash = $this->requestModel->getXFpHash();
  51. $this->assertEquals($expectedHash, $signHash);
  52. }
  53. /**
  54. * @return array
  55. */
  56. public function signRequestDataProvider()
  57. {
  58. return [
  59. [
  60. 'signatureKey' => '3EAFCE5697C1B4B9748385C1FCD29D86F3B9B41C7EED85A3A01DFF65' .
  61. '70C8C29373C2A153355C3313CDF4AF723C0036DBF244A0821713A910024EE85547CEF37F',
  62. 'expectedHash' => '719ED94DF5CF3510CB5531E8115462C8F12CBCC8E917BD809E8D40B4FF06' .
  63. '1E14953554403DD9813CCCE0F31B184EB4DEF558E9C0747505A0C25420372DB00BE1'
  64. ],
  65. [
  66. 'signatureKey' => '',
  67. 'expectedHash' => '3656211f2c41d1e4c083606f326c0460'
  68. ],
  69. ];
  70. }
  71. }