DependencyUpdaterPluginTest.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. declare(strict_types=1);
  7. namespace Magento\Elasticsearch\Test\Unit\Model\Indexer\Plugin;
  8. use Magento\Elasticsearch\Model\Config;
  9. use Magento\Elasticsearch\Model\Indexer\Plugin\DependencyUpdaterPlugin;
  10. use Magento\Framework\Indexer\Config\DependencyInfoProvider;
  11. use Magento\CatalogSearch\Model\Indexer\Fulltext as CatalogSearchFulltextIndexer;
  12. use Magento\CatalogInventory\Model\Indexer\Stock\Processor as CatalogInventoryStockIndexer;
  13. /**
  14. * Test for Magento\Elasticsearch\Model\Indexer\Plugin\DependencyUpdaterPlugin class.
  15. */
  16. class DependencyUpdaterPluginTest extends \PHPUnit\Framework\TestCase
  17. {
  18. /**
  19. * @var Config|\PHPUnit_Framework_MockObject_MockObject
  20. */
  21. private $configMock;
  22. /**
  23. * @var DependencyUpdaterPlugin
  24. */
  25. private $plugin;
  26. /**
  27. * @var DependencyInfoProvider|\PHPUnit_Framework_MockObject_MockObject
  28. */
  29. private $providerMock;
  30. /**
  31. * {@inheritdoc}
  32. */
  33. protected function setUp()
  34. {
  35. $this->configMock = $this->getMockBuilder(Config::class)
  36. ->disableOriginalConstructor()
  37. ->getMock();
  38. $this->configMock->expects($this->exactly(2))
  39. ->method('isElasticsearchEnabled')
  40. ->willReturnOnConsecutiveCalls(true, false);
  41. $this->providerMock = $this->getMockBuilder(DependencyInfoProvider::class)
  42. ->disableOriginalConstructor()
  43. ->getMock();
  44. $this->plugin = new DependencyUpdaterPlugin($this->configMock);
  45. }
  46. /**
  47. * @return void
  48. */
  49. public function testAfterGetIndexerIdsToRunBefore(): void
  50. {
  51. $dependencies = [
  52. CatalogInventoryStockIndexer::INDEXER_ID,
  53. ];
  54. $indexerId = CatalogSearchFulltextIndexer::INDEXER_ID;
  55. $indexerIds = $this->plugin->afterGetIndexerIdsToRunBefore($this->providerMock, $dependencies, $indexerId);
  56. $this->assertContains(CatalogInventoryStockIndexer::INDEXER_ID, $indexerIds);
  57. $indexerIds = $this->plugin->afterGetIndexerIdsToRunBefore($this->providerMock, $dependencies, $indexerId);
  58. $this->assertNotContains(CatalogInventoryStockIndexer::INDEXER_ID, $indexerIds);
  59. }
  60. /**
  61. * @return void
  62. */
  63. public function testAfterGetIndexerIdsToRunAfter(): void
  64. {
  65. $dependencies = [
  66. CatalogSearchFulltextIndexer::INDEXER_ID,
  67. ];
  68. $indexerId = CatalogInventoryStockIndexer::INDEXER_ID;
  69. $indexerIds = $this->plugin->afterGetIndexerIdsToRunAfter($this->providerMock, $dependencies, $indexerId);
  70. $this->assertContains(CatalogSearchFulltextIndexer::INDEXER_ID, $indexerIds);
  71. $indexerIds = $this->plugin->afterGetIndexerIdsToRunAfter($this->providerMock, $dependencies, $indexerId);
  72. $this->assertNotContains(CatalogSearchFulltextIndexer::INDEXER_ID, $indexerIds);
  73. }
  74. }