CvvEmsCodeMapperTest.php 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Braintree\Test\Unit\Model;
  7. use Magento\Braintree\Model\CvvEmsCodeMapper;
  8. use Magento\Braintree\Model\Ui\ConfigProvider;
  9. use Magento\Sales\Api\Data\OrderPaymentInterface;
  10. use PHPUnit_Framework_MockObject_MockObject as MockObject;
  11. class CvvEmsCodeMapperTest extends \PHPUnit\Framework\TestCase
  12. {
  13. /**
  14. * @var CvvEmsCodeMapper
  15. */
  16. private $mapper;
  17. /**
  18. * @inheritdoc
  19. */
  20. protected function setUp()
  21. {
  22. $this->mapper = new CvvEmsCodeMapper();
  23. }
  24. /**
  25. * Checks different variations for cvv codes mapping.
  26. *
  27. * @covers \Magento\Braintree\Model\CvvEmsCodeMapper::getCode
  28. * @param string $cvvCode
  29. * @param string $expected
  30. * @dataProvider getCodeDataProvider
  31. */
  32. public function testGetCode($cvvCode, $expected)
  33. {
  34. /** @var OrderPaymentInterface|MockObject $orderPayment */
  35. $orderPayment = $this->getMockBuilder(OrderPaymentInterface::class)
  36. ->disableOriginalConstructor()
  37. ->getMock();
  38. $orderPayment->expects(self::once())
  39. ->method('getMethod')
  40. ->willReturn(ConfigProvider::CODE);
  41. $orderPayment->expects(self::once())
  42. ->method('getAdditionalInformation')
  43. ->willReturn(['cvvResponseCode' => $cvvCode]);
  44. self::assertEquals($expected, $this->mapper->getCode($orderPayment));
  45. }
  46. /**
  47. * Checks a test case, when payment order is not Braintree payment method.
  48. *
  49. * @covers \Magento\Braintree\Model\CvvEmsCodeMapper::getCode
  50. * @expectedException \InvalidArgumentException
  51. * @expectedExceptionMessage The "some_payment" does not supported by Braintree CVV mapper.
  52. */
  53. public function testGetCodeWithException()
  54. {
  55. /** @var OrderPaymentInterface|MockObject $orderPayment */
  56. $orderPayment = $this->getMockBuilder(OrderPaymentInterface::class)
  57. ->disableOriginalConstructor()
  58. ->getMock();
  59. $orderPayment->expects(self::exactly(2))
  60. ->method('getMethod')
  61. ->willReturn('some_payment');
  62. $this->mapper->getCode($orderPayment);
  63. }
  64. /**
  65. * Gets variations of cvv codes and expected mapping result.
  66. *
  67. * @return array
  68. */
  69. public function getCodeDataProvider()
  70. {
  71. return [
  72. ['cvvCode' => '', 'expected' => 'P'],
  73. ['cvvCode' => null, 'expected' => 'P'],
  74. ['cvvCode' => 'Unknown', 'expected' => 'P'],
  75. ['cvvCode' => 'M', 'expected' => 'M'],
  76. ['cvvCode' => 'N', 'expected' => 'N'],
  77. ['cvvCode' => 'U', 'expected' => 'P'],
  78. ['cvvCode' => 'I', 'expected' => 'P'],
  79. ['cvvCode' => 'S', 'expected' => 'S'],
  80. ['cvvCode' => 'A', 'expected' => ''],
  81. ];
  82. }
  83. }