MergeDataProviderTest.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\UrlRewrite\Test\Unit\Model;
  7. use Magento\UrlRewrite\Model\MergeDataProvider;
  8. use Magento\UrlRewrite\Service\V1\Data\UrlRewrite;
  9. use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
  10. class MergeDataProviderTest extends \PHPUnit\Framework\TestCase
  11. {
  12. /**
  13. * @var MergeDataProvider|\PHPUnit_Framework_MockObject_MockObject
  14. */
  15. private $urlRewritesSet;
  16. /**
  17. * Set up
  18. *
  19. * @return void
  20. */
  21. protected function setUp()
  22. {
  23. $this->urlRewritesSet = (new ObjectManager($this))->getObject(
  24. MergeDataProvider::class,
  25. []
  26. );
  27. }
  28. /**
  29. * Run test merge method
  30. *
  31. * @param array $urlRewriteMockArray
  32. * @param String $expectedData
  33. * @param int $arrayCount
  34. * @dataProvider mergeDataProvider
  35. * @return void
  36. */
  37. public function testMerge($urlRewriteMockArray, $expectedData, $arrayCount)
  38. {
  39. $this->urlRewritesSet->merge($urlRewriteMockArray);
  40. $this->assertEquals($expectedData, $this->urlRewritesSet->getData());
  41. $this->assertCount($arrayCount, $this->urlRewritesSet->getData());
  42. }
  43. /**
  44. * Run test getData method when data is Empty
  45. *
  46. * @return void
  47. */
  48. public function testGetDataWhenEmpty()
  49. {
  50. $this->assertEmpty($this->urlRewritesSet->getData());
  51. }
  52. /**
  53. * Data provider for testMerge
  54. *
  55. * @return array
  56. */
  57. public function mergeDataProvider()
  58. {
  59. $urlRewriteMock1 = $this->createMock(UrlRewrite::class);
  60. $requestPathForMock2 = 'magento.tst/products/simpleproduct2';
  61. $storeIdForMock2 = 'testStore2';
  62. $urlRewriteMock2 = $this->createMock(UrlRewrite::class);
  63. $urlRewriteMock2->expects($this->atLeastOnce())
  64. ->method('getRequestPath')
  65. ->willReturn($requestPathForMock2);
  66. $urlRewriteMock2->expects($this->atLeastOnce())
  67. ->method('getStoreId')
  68. ->willReturn($storeIdForMock2);
  69. $requestPathForMock3 = 'magento.tst/products/simpleproduct3';
  70. $storeIdForMock3 = 'testStore3';
  71. $urlRewriteMock3 = $this->createMock(UrlRewrite::class);
  72. $urlRewriteMock3->expects($this->atLeastOnce())
  73. ->method('getRequestPath')
  74. ->willReturn($requestPathForMock3);
  75. $urlRewriteMock3->expects($this->atLeastOnce())
  76. ->method('getStoreId')
  77. ->willReturn($storeIdForMock3);
  78. return [
  79. [
  80. [],
  81. [],
  82. 0
  83. ],
  84. [
  85. [$urlRewriteMock1],
  86. [$urlRewriteMock1],
  87. 1
  88. ],
  89. [
  90. [
  91. $urlRewriteMock1,
  92. $urlRewriteMock2,
  93. $urlRewriteMock2
  94. ],
  95. [
  96. $urlRewriteMock1,
  97. $requestPathForMock2 . '_' . $storeIdForMock2 => $urlRewriteMock2
  98. ],
  99. 2
  100. ],
  101. [
  102. [
  103. $urlRewriteMock1,
  104. $urlRewriteMock2,
  105. $urlRewriteMock3
  106. ],
  107. [
  108. $urlRewriteMock1,
  109. $requestPathForMock2 . '_' . $storeIdForMock2 => $urlRewriteMock2,
  110. $requestPathForMock3 . '_' . $storeIdForMock3 => $urlRewriteMock3
  111. ],
  112. 3
  113. ],
  114. ];
  115. }
  116. }