XmlToArrayConfigConverterTest.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Signifyd\Test\Unit\Model\PaymentMethodMapper;
  7. use Magento\Signifyd\Model\PaymentMethodMapper\XmlToArrayConfigConverter;
  8. use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
  9. use Magento\Framework\Config\Dom\ValidationSchemaException;
  10. class XmlToArrayConfigConverterTest extends \PHPUnit\Framework\TestCase
  11. {
  12. /**
  13. * @var XmlToArrayConfigConverter
  14. */
  15. private $converter;
  16. /**
  17. * @var string
  18. */
  19. private $filePath;
  20. public function setUp()
  21. {
  22. $this->filePath = realpath(__DIR__) . '/_files/';
  23. $objectManagerHelper = new ObjectManager($this);
  24. $this->converter = $objectManagerHelper->getObject(
  25. XmlToArrayConfigConverter::class
  26. );
  27. }
  28. public function testConvert()
  29. {
  30. $testDom = $this->filePath . 'signifyd_payment_mapping.xml';
  31. $dom = new \DOMDocument();
  32. $dom->load($testDom);
  33. $mapping = $this->converter->convert($dom);
  34. $expectedArray = include $this->filePath . 'expected_array.php';
  35. $this->assertEquals($expectedArray, $mapping);
  36. }
  37. /**
  38. * @expectedException \Magento\Framework\Config\Dom\ValidationSchemaException
  39. * @expectedExceptionMessage Only single entrance of "magento_code" node is required.
  40. */
  41. public function testConvertEmptyPaymentMethodException()
  42. {
  43. $dom = new \DOMDocument();
  44. $element = $dom->createElement('payment_method');
  45. $subelement = $dom->createElement('signifyd_code', 'test');
  46. $element->appendChild($subelement);
  47. $dom->appendChild($element);
  48. $this->converter->convert($dom);
  49. }
  50. /**
  51. * @expectedException \Magento\Framework\Config\Dom\ValidationSchemaException
  52. * @expectedExceptionMessage Not empty value for "signifyd_code" node is required.
  53. */
  54. public function testConvertEmptySygnifydPaymentMethodException()
  55. {
  56. $dom = new \DOMDocument();
  57. $element = $dom->createElement('payment_method');
  58. $subelement = $dom->createElement('magento_code', 'test');
  59. $subelement2 = $dom->createElement('signifyd_code', '');
  60. $element->appendChild($subelement);
  61. $element->appendChild($subelement2);
  62. $dom->appendChild($element);
  63. $this->converter->convert($dom);
  64. }
  65. }