1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Setup\Console\Command;
use Symfony\Component\Console\Tester\CommandTester;
class I18nCollectPhrasesCommandTest extends \PHPUnit\Framework\TestCase
{
/**
* @var I18nCollectPhrasesCommand
*/
private $command;
/**
* @var CommandTester
*/
private $tester;
public function setUp()
{
$this->command = new I18nCollectPhrasesCommand();
$this->tester = new CommandTester($this->command);
}
public function tearDown()
{
$property = new \ReflectionProperty(\Magento\Setup\Module\I18n\ServiceLocator::class, '_dictionaryGenerator');
$property->setAccessible(true);
$property->setValue(null);
$property->setAccessible(false);
}
public function testExecuteConsoleOutput()
{
$this->tester->execute(
[
'directory' => BP . '/dev/tests/integration/testsuite/Magento/Setup/Console/Command/_files/',
]
);
$this->assertEquals('Dictionary successfully processed.' . PHP_EOL, $this->tester->getDisplay());
}
public function testExecuteCsvOutput()
{
$outputPath = BP . '/dev/tests/integration/testsuite/Magento/Setup/Console/Command/_files/output/phrases.csv';
$this->tester->execute(
[
'directory' => BP . '/dev/tests/integration/testsuite/Magento/Setup/Console/Command/_files/phrases/',
'--output' => $outputPath,
]
);
$handle = fopen($outputPath, 'r');
$output = fread($handle, filesize($outputPath));
$expected = file_get_contents(
BP . '/dev/tests/integration/testsuite/Magento/Setup/Console/Command/_files/expectedPhrases.csv'
);
$this->assertEquals($expected, $output);
unlink($outputPath);
}
/**
* @expectedException \InvalidArgumentException
* @expectedExceptionMessage Specified path doesn't exist
*/
public function testExecuteNonExistingPath()
{
$this->tester->execute(
[
'directory' => BP . '/dev/tests/integration/testsuite/Magento/Setup/Console/Command/_files/non_exist',
]
);
}
/**
* @expectedException \InvalidArgumentException
* @expectedExceptionMessage Directory path is not needed when --magento flag is set.
*/
public function testExecuteMagentoFlagDirectoryPath()
{
$this->tester->execute(['directory' => 'a', '--magento' => true]);
}
/**
* @expectedException \InvalidArgumentException
* @expectedExceptionMessage Directory path is needed when --magento flag is not set.
*/
public function testExecuteNoMagentoFlagNoDirectoryPath()
{
$this->tester->execute([]);
}
}