ConverterTest.php 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Paypal\Test\Unit\Model\Config\Rules;
  7. /**
  8. * Class ConverterTest
  9. *
  10. * Test for class \Magento\Paypal\Model\Config\Rules\Converter
  11. */
  12. class ConverterTest extends \PHPUnit\Framework\TestCase
  13. {
  14. /**
  15. * @var \Magento\Paypal\Model\Config\Rules\Converter
  16. */
  17. protected $converter;
  18. /**
  19. * Set up
  20. *
  21. * @return void
  22. */
  23. protected function setUp()
  24. {
  25. $this->converter = new \Magento\Paypal\Model\Config\Rules\Converter();
  26. }
  27. /**
  28. * Run test for convert method
  29. *
  30. * @param array $expected
  31. *
  32. * @dataProvider dataProviderExpectedData
  33. */
  34. public function testConvert(array $expected)
  35. {
  36. $document = new \DOMDocument();
  37. $document->load(__DIR__ . '/ConvertibleContent/rules.xml');
  38. $this->assertEquals($expected, $this->converter->convert($document));
  39. }
  40. /**
  41. * Data provider for testConvert
  42. *
  43. * @return array
  44. * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
  45. */
  46. public function dataProviderExpectedData()
  47. {
  48. return [
  49. [
  50. 'expected' => [
  51. 'payment_1' => [
  52. 'events' => [
  53. 'test-selector' => [
  54. 'event0' => [
  55. 'value' => '0',
  56. 'predicate' => [
  57. ],
  58. 'include' => '',
  59. ],
  60. 'event1' => [
  61. 'value' => '1',
  62. 'predicate' => [
  63. 'name' => 'predicate1',
  64. 'message' => 'Test message!',
  65. 'event' => 'event1',
  66. 'argument' => [
  67. 'argument1' => 'argument1',
  68. 'argument2' => 'argument2',
  69. ],
  70. ],
  71. 'include' => '',
  72. ],
  73. ],
  74. ],
  75. 'relations' => [
  76. 'payment_test_1' => [
  77. 'test' => [
  78. [
  79. 'event' => 'event0',
  80. 'argument' => [],
  81. ]
  82. ],
  83. ],
  84. 'payment_test_2' => [
  85. 'test' => [
  86. [
  87. 'event' => 'event1',
  88. 'argument' => [],
  89. ]
  90. ],
  91. 'test-two' => [
  92. [
  93. 'event' => 'event1',
  94. 'argument' => [
  95. 'argument1' => 'argument1',
  96. 'argument2' => 'argument2',
  97. ],
  98. ]
  99. ],
  100. ],
  101. ],
  102. ],
  103. 'payment_2' => [
  104. 'events' => [
  105. 'test-selector' => [
  106. 'event0' => [
  107. 'value' => '0',
  108. 'predicate' => [],
  109. 'include' => '',
  110. ],
  111. 'event1' => [
  112. 'value' => '1',
  113. 'predicate' => [
  114. 'name' => 'predicate1',
  115. 'message' => 'Test message!',
  116. 'event' => 'event1',
  117. 'argument' => [
  118. 'argument1' => 'argument1',
  119. 'argument2' => 'argument2',
  120. ],
  121. ],
  122. 'include' => '',
  123. ],
  124. ],
  125. ],
  126. 'relations' => [
  127. 'payment_test_1' => [
  128. 'test' => [
  129. [
  130. 'event' => 'event0',
  131. 'argument' => [],
  132. ]
  133. ],
  134. ],
  135. 'payment_test_2' => [
  136. 'test' => [
  137. [
  138. 'event' => 'event1',
  139. 'argument' => [],
  140. ]
  141. ],
  142. 'test-two' => [
  143. [
  144. 'event' => 'event1',
  145. 'argument' => [
  146. 'argument1' => 'argument1',
  147. 'argument2' => 'argument2',
  148. ],
  149. ],
  150. [
  151. 'event' => 'event2',
  152. 'argument' => [
  153. 'argument1' => 'argument1',
  154. 'argument2' => 'argument2',
  155. ],
  156. ]
  157. ],
  158. ],
  159. ],
  160. ],
  161. ]
  162. ]
  163. ];
  164. }
  165. }