AllAppModulesFinderTest   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 49
Duplicated Lines 0 %

Importance

Changes 3
Bugs 0 Features 0
Metric Value
eloc 27
c 3
b 0
f 0
dl 0
loc 49
rs 10
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A test_find_some_app_modules() 0 16 1
A test_find_all_app_modules() 0 21 1
A setUp() 0 4 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace GacelaTest\Integration\Console\AllAppModules\Domain;
6
7
use Gacela\Console\ConsoleFacade;
8
use Gacela\Console\Domain\AllAppModules\AppModule;
9
use Gacela\Framework\Gacela;
10
use GacelaTest\Integration\Console\AllAppModules\Domain\Module1\Module1Config;
11
use GacelaTest\Integration\Console\AllAppModules\Domain\Module1\Module1Facade;
12
use GacelaTest\Integration\Console\AllAppModules\Domain\Module1\Module1Factory;
13
use GacelaTest\Integration\Console\AllAppModules\Domain\Module1\Module1Provider;
14
use GacelaTest\Integration\Console\AllAppModules\Domain\Module2\Module2Facade;
15
use PHPUnit\Framework\TestCase;
16
17
use function array_slice;
18
19
final class AllAppModulesFinderTest extends TestCase
20
{
21
    private ConsoleFacade $consoleFacade;
22
23
    protected function setUp(): void
24
    {
25
        Gacela::bootstrap(__DIR__);
26
        $this->consoleFacade = new ConsoleFacade();
27
    }
28
29
    public function test_find_all_app_modules(): void
30
    {
31
        $actual = $this->consoleFacade->findAllAppModules();
32
33
        $expected = [
34
            new AppModule(
35
                implode('\\', array_slice(explode('\\', Module1Facade::class), 0, -1)),
36
                'Module1',
37
                Module1Facade::class,
38
                Module1Factory::class,
39
                Module1Config::class,
40
                Module1Provider::class,
41
            ),
42
            new AppModule(
43
                implode('\\', array_slice(explode('\\', Module2Facade::class), 0, -1)),
44
                'Module2',
45
                Module2Facade::class,
46
            ),
47
        ];
48
49
        self::assertEquals($expected, $actual);
50
    }
51
52
    public function test_find_some_app_modules(): void
53
    {
54
        $actual = $this->consoleFacade->findAllAppModules('Module1Facade');
55
56
        $expected = [
57
            new AppModule(
58
                implode('\\', array_slice(explode('\\', Module1Facade::class), 0, -1)),
59
                'Module1',
60
                Module1Facade::class,
61
                Module1Factory::class,
62
                Module1Config::class,
63
                Module1Provider::class,
64
            ),
65
        ];
66
67
        self::assertEquals($expected, $actual);
68
    }
69
}
70