ReaderTest.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  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\Analytics\Model\Config\Reader;
  9. use Magento\Framework\Config\ReaderInterface;
  10. use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
  11. /**
  12. * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
  13. */
  14. class ReaderTest extends \PHPUnit\Framework\TestCase
  15. {
  16. /**
  17. * @var Mapper|\PHPUnit_Framework_MockObject_MockObject
  18. */
  19. private $mapperMock;
  20. /**
  21. * @var ReaderInterface|\PHPUnit_Framework_MockObject_MockObject
  22. */
  23. private $readerXmlMock;
  24. /**
  25. * @var ReaderInterface|\PHPUnit_Framework_MockObject_MockObject
  26. */
  27. private $readerDbMock;
  28. /**
  29. * @var ObjectManagerHelper
  30. */
  31. private $objectManagerHelper;
  32. /**
  33. * @var Reader
  34. */
  35. private $reader;
  36. /**
  37. * @return void
  38. */
  39. protected function setUp()
  40. {
  41. $this->mapperMock = $this->getMockBuilder(Mapper::class)
  42. ->disableOriginalConstructor()
  43. ->getMock();
  44. $this->readerXmlMock = $this->getMockBuilder(ReaderInterface::class)
  45. ->disableOriginalConstructor()
  46. ->getMock();
  47. $this->readerDbMock = $this->getMockBuilder(ReaderInterface::class)
  48. ->disableOriginalConstructor()
  49. ->getMock();
  50. $this->objectManagerHelper = new ObjectManagerHelper($this);
  51. $this->reader = $this->objectManagerHelper->getObject(
  52. Reader::class,
  53. [
  54. 'mapper' => $this->mapperMock,
  55. 'readers' => [
  56. $this->readerXmlMock,
  57. $this->readerDbMock,
  58. ],
  59. ]
  60. );
  61. }
  62. /**
  63. * @return void
  64. */
  65. public function testRead()
  66. {
  67. $scope = 'store';
  68. $xmlReaderResult = [
  69. 'config' => ['node1' => ['node2' => 'node4']]
  70. ];
  71. $dbReaderResult = [
  72. 'config' => ['node1' => ['node2' => 'node3']]
  73. ];
  74. $mapperResult = ['node2' => ['node3', 'node4']];
  75. $this->readerXmlMock
  76. ->expects($this->once())
  77. ->method('read')
  78. ->with($scope)
  79. ->willReturn($xmlReaderResult);
  80. $this->readerDbMock
  81. ->expects($this->once())
  82. ->method('read')
  83. ->with($scope)
  84. ->willReturn($dbReaderResult);
  85. $this->mapperMock
  86. ->expects($this->once())
  87. ->method('execute')
  88. ->with(array_merge_recursive($xmlReaderResult, $dbReaderResult))
  89. ->willReturn($mapperResult);
  90. $this->assertSame($mapperResult, $this->reader->read($scope));
  91. }
  92. }