123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- declare(strict_types=1);
- namespace Magento\Indexer\Test\Unit\Console\Command;
- use Magento\Indexer\Console\Command\IndexerShowDimensionsModeCommand;
- use Symfony\Component\Console\Tester\CommandTester;
- use Magento\Framework\App\Config\ScopeConfigInterface;
- use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
- class IndexerShowDimensionsModeCommandTest extends AbstractIndexerCommandCommonSetup
- {
- /**
- * Command being tested
- *
- * @var IndexerShowDimensionsModeCommand|\PHPUnit_Framework_MockObject_MockObject
- */
- private $command;
- /**
- * ScopeConfigInterface
- *
- * @var ScopeConfigInterface|\PHPUnit_Framework_MockObject_MockObject
- */
- private $configReaderMock;
- /**
- * @var \Magento\Indexer\Model\ModeSwitcherInterface[]
- */
- private $indexers;
- /**
- * @var \Magento\Indexer\Model\Indexer|\PHPUnit_Framework_MockObject_MockObject
- */
- private $indexerMock;
- /**
- * @inheritdoc
- */
- protected function setUp()
- {
- parent::setUp();
- $objectManagerHelper = new ObjectManagerHelper($this);
- $this->configReaderMock = $this->createMock(ScopeConfigInterface::class);
- $this->indexers = ['indexer_1' => 'indexer_1', 'indexer_2' => 'indexer_2'];
- $this->command = $objectManagerHelper->getObject(
- IndexerShowDimensionsModeCommand::class,
- [
- 'objectManagerFactory' => $this->objectManagerFactory,
- 'configReader' => $this->configReaderMock,
- 'indexers' => $this->indexers,
- ]
- );
- }
- /**
- * Get return value map for object manager
- *
- * @return array
- */
- protected function getObjectManagerReturnValueMap(): array
- {
- $result = parent::getObjectManagerReturnValueMap();
- $this->indexerMock = $this->createMock(\Magento\Indexer\Model\Indexer::class);
- $result[] = [\Magento\Indexer\Model\Indexer::class, $this->indexerMock];
- return $result;
- }
- /**
- * Tests method \Magento\Indexer\Console\Command\IndexerDimensionsModeCommand::execute
- *
- * @param string $command
- * @param string $consoleOutput
- * @dataProvider dimensionModesDataProvider
- */
- public function testExecuteWithAttributes($command, $consoleOutput)
- {
- $indexers = [['indexer_1'], ['indexer_2']];
- $indexerTitles = ['indexer_title1', 'indexer_title2'];
- $this->configureAdminArea();
- /** @var CommandTester $commandTester */
- $commandTester = new CommandTester($this->command);
- $this->indexerMock->method('load')->withConsecutive(...$indexers);
- $this->indexerMock->method('getTitle')->willReturnOnConsecutiveCalls(...$indexerTitles);
- $commandTester->execute($command);
- $actualValue = $commandTester->getDisplay();
- $this->assertEquals(
- $consoleOutput,
- $actualValue
- );
- }
- /**
- * @return array
- */
- public function dimensionModesDataProvider(): array
- {
- return [
- 'get_all' => [
- 'command' => [],
- 'output' =>
- sprintf(
- '%-50s ',
- 'indexer_title1' . ':'
- ) . 'none' . PHP_EOL .
- sprintf(
- '%-50s ',
- 'indexer_title2' . ':'
- ) . 'none' . PHP_EOL
- ,
- ],
- 'get_by_index' => [
- 'command' => [
- 'indexer' => ['indexer_1'],
- ],
- 'output' =>
- sprintf(
- '%-50s ',
- 'indexer_title1' . ':'
- ) . 'none' . PHP_EOL
- ,
- ],
- 'get_by_several_indexes' => [
- 'command' => [
- 'indexer' => ['indexer_1', 'indexer_2'],
- ],
- 'output' =>
- sprintf(
- '%-50s ',
- 'indexer_title1' . ':'
- ) . 'none' . PHP_EOL .
- sprintf(
- '%-50s ',
- 'indexer_title2' . ':'
- ) . 'none' . PHP_EOL
- ,
- ],
- ];
- }
- }
|