Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
IndexerShowDimensionsModeCommandTest.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
9 
11 use Symfony\Component\Console\Tester\CommandTester;
14 
16 {
22  private $command;
23 
29  private $configReaderMock;
30 
34  private $indexers;
35 
39  private $indexerMock;
40 
44  protected function setUp()
45  {
46  parent::setUp();
47  $objectManagerHelper = new ObjectManagerHelper($this);
48  $this->configReaderMock = $this->createMock(ScopeConfigInterface::class);
49  $this->indexers = ['indexer_1' => 'indexer_1', 'indexer_2' => 'indexer_2'];
50  $this->command = $objectManagerHelper->getObject(
51  IndexerShowDimensionsModeCommand::class,
52  [
53  'objectManagerFactory' => $this->objectManagerFactory,
54  'configReader' => $this->configReaderMock,
55  'indexers' => $this->indexers,
56  ]
57  );
58  }
59 
65  protected function getObjectManagerReturnValueMap(): array
66  {
67  $result = parent::getObjectManagerReturnValueMap();
68  $this->indexerMock = $this->createMock(\Magento\Indexer\Model\Indexer::class);
69  $result[] = [\Magento\Indexer\Model\Indexer::class, $this->indexerMock];
70 
71  return $result;
72  }
73 
81  public function testExecuteWithAttributes($command, $consoleOutput)
82  {
83  $indexers = [['indexer_1'], ['indexer_2']];
84  $indexerTitles = ['indexer_title1', 'indexer_title2'];
85  $this->configureAdminArea();
87  $commandTester = new CommandTester($this->command);
88  $this->indexerMock->method('load')->withConsecutive(...$indexers);
89  $this->indexerMock->method('getTitle')->willReturnOnConsecutiveCalls(...$indexerTitles);
90  $commandTester->execute($command);
91  $actualValue = $commandTester->getDisplay();
92  $this->assertEquals(
93  $consoleOutput,
94  $actualValue
95  );
96  }
97 
101  public function dimensionModesDataProvider(): array
102  {
103  return [
104  'get_all' => [
105  'command' => [],
106  'output' =>
107  sprintf(
108  '%-50s ',
109  'indexer_title1' . ':'
110  ) . 'none' . PHP_EOL .
111  sprintf(
112  '%-50s ',
113  'indexer_title2' . ':'
114  ) . 'none' . PHP_EOL
115  ,
116  ],
117  'get_by_index' => [
118  'command' => [
119  'indexer' => ['indexer_1'],
120  ],
121  'output' =>
122  sprintf(
123  '%-50s ',
124  'indexer_title1' . ':'
125  ) . 'none' . PHP_EOL
126  ,
127  ],
128  'get_by_several_indexes' => [
129  'command' => [
130  'indexer' => ['indexer_1', 'indexer_2'],
131  ],
132  'output' =>
133  sprintf(
134  '%-50s ',
135  'indexer_title1' . ':'
136  ) . 'none' . PHP_EOL .
137  sprintf(
138  '%-50s ',
139  'indexer_title2' . ':'
140  ) . 'none' . PHP_EOL
141  ,
142  ],
143  ];
144  }
145 }