MapperTest.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Analytics\Test\Unit\Model\Config;
  7. use Magento\Analytics\Model\Config\Mapper;
  8. use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
  9. /**
  10. * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
  11. */
  12. class MapperTest extends \PHPUnit\Framework\TestCase
  13. {
  14. /**
  15. * @var ObjectManagerHelper
  16. */
  17. private $objectManagerHelper;
  18. /**
  19. * @var Mapper
  20. */
  21. private $mapper;
  22. /**
  23. * @return void
  24. */
  25. protected function setUp()
  26. {
  27. $this->objectManagerHelper = new ObjectManagerHelper($this);
  28. $this->mapper = $this->objectManagerHelper->getObject(Mapper::class);
  29. }
  30. /**
  31. * @param array $configData
  32. * @param array $resultData
  33. * @return void
  34. *
  35. * @dataProvider executingDataProvider
  36. */
  37. public function testExecution($configData, $resultData)
  38. {
  39. $this->assertSame($resultData, $this->mapper->execute($configData));
  40. }
  41. /**
  42. * @return array
  43. */
  44. public function executingDataProvider()
  45. {
  46. return [
  47. 'wrongConfig' => [
  48. ['config' => ['files']],
  49. []
  50. ],
  51. 'validConfigWithFileNodes' => [
  52. [
  53. 'config' => [
  54. 0 => [
  55. 'file' => [
  56. 0 => [
  57. 'name' => 'fileName',
  58. 'providers' => [[]]
  59. ]
  60. ]
  61. ]
  62. ]
  63. ],
  64. [
  65. 'fileName' => [
  66. 'name' => 'fileName',
  67. 'providers' => []
  68. ]
  69. ],
  70. ],
  71. 'validConfigWithProvidersNode' => [
  72. [
  73. 'config' => [
  74. 0 => [
  75. 'file' => [
  76. 0 => [
  77. 'name' => 'fileName',
  78. 'providers' => [
  79. 0 => [
  80. 'reportProvider' => [0 => []]
  81. ]
  82. ]
  83. ]
  84. ]
  85. ]
  86. ]
  87. ],
  88. [
  89. 'fileName' => [
  90. 'name' => 'fileName',
  91. 'providers' => [
  92. 'reportProvider' => ['parameters' => []]
  93. ]
  94. ]
  95. ],
  96. ],
  97. 'validConfigWithParametersNode' => [
  98. [
  99. 'config' => [
  100. 0 => [
  101. 'file' => [
  102. 0 => [
  103. 'name' => 'fileName',
  104. 'providers' => [
  105. 0 => [
  106. 'reportProvider' => [
  107. 0 => [
  108. 'parameters' => [
  109. 0 => ['name' => ['reportName']]
  110. ]
  111. ]
  112. ]
  113. ]
  114. ]
  115. ]
  116. ]
  117. ]
  118. ]
  119. ],
  120. [
  121. 'fileName' => [
  122. 'name' => 'fileName',
  123. 'providers' => [
  124. 'reportProvider' => [
  125. 'parameters' => [
  126. 'name' => 'reportName'
  127. ]
  128. ]
  129. ]
  130. ]
  131. ],
  132. ],
  133. ];
  134. }
  135. }