Passed
Pull Request — master (#59)
by Jesús
08:20
created

MakeFileCommandTest::createFilesProvider()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 12
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 8
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 12
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
namespace GacelaTest\Feature\CodeGenerator;
6
7
use GacelaTest\Feature\Util\DirectoryUtil;
8
use PHPUnit\Framework\TestCase;
9
10
final class MakeFileCommandTest extends TestCase
11
{
12
    private const ENTRY_POINT = __DIR__ . '/../../../';
13
14
    /**
15
     * @dataProvider createFilesProvider
16
     */
17
    public function test_make_file(string $action, string $fileName, string $shortName): void
18
    {
19
        DirectoryUtil::removeDir(self::ENTRY_POINT . 'src/TestModule');
20
21
        $command = sprintf('%sgacela make:file %s Gacela/TestModule %s', self::ENTRY_POINT, $shortName, $action);
22
        exec($command, $output);
23
24
        self::assertSame("> Path 'src/TestModule/{$fileName}.php' created successfully", $output[0]);
25
        self::assertFileExists(self::ENTRY_POINT . "src/TestModule/{$fileName}.php");
26
27
        DirectoryUtil::removeDir(self::ENTRY_POINT . 'src/TestModule');
28
        self::assertDirectoryDoesNotExist(self::ENTRY_POINT . 'src/TestModule');
29
    }
30
31
    public function createFilesProvider(): iterable
32
    {
33
        yield 'facade' => ['facade', 'TestModuleFacade', ''];
34
        yield 'factory' => ['factory', 'TestModuleFactory', ''];
35
        yield 'config' => ['config', 'TestModuleConfig', ''];
36
        yield 'dependency provider' => ['dependency-provider', 'TestModuleDependencyProvider', ''];
37
38
        // Sort name flag
39
        yield 'facade -s' => ['facade', 'Facade', '-s'];
40
        yield 'factory -s' => ['factory', 'Factory', '-s'];
41
        yield 'config -s' => ['config', 'Config', '-s'];
42
        yield 'dependency provider -s' => ['dependency-provider', 'DependencyProvider', '-s'];
43
    }
44
}
45