Passed
Push — main ( 0a89cd...ee99b4 )
by Chema
54s queued 14s
created

RouterInjectionTest   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 25
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 2
eloc 13
c 1
b 0
f 0
dl 0
loc 25
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A test_inject_dependencies_in_controllers() 0 10 1
A test_inject_controller_with_request_dependency() 0 10 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace GacelaTest\Unit\Router;
6
7
use Gacela\Router\MappingInterfaces;
8
use Gacela\Router\Router;
9
use Gacela\Router\Routes;
10
use GacelaTest\Unit\Router\Fake\Name;
11
use GacelaTest\Unit\Router\Fake\NameInterface;
12
use GacelaTest\Unit\Router\Fixtures\FakeControllerWithDependencies;
13
use GacelaTest\Unit\Router\Fixtures\FakeControllerWithRequest;
14
use PHPUnit\Framework\TestCase;
15
16
final class RouterInjectionTest extends TestCase
17
{
18
    public function test_inject_dependencies_in_controllers(): void
19
    {
20
        $_SERVER['REQUEST_URI'] = 'https://example.org/expected/uri';
21
        $_SERVER['REQUEST_METHOD'] = 'GET';
22
23
        $this->expectOutputString('default-Expected!');
24
25
        Router::configure(static function (Routes $routes, MappingInterfaces $mappingInterfaces): void {
26
            $routes->get('expected/uri', FakeControllerWithDependencies::class);
27
            $mappingInterfaces->add(NameInterface::class, new Name('Expected!'));
28
        });
29
    }
30
31
    public function test_inject_controller_with_request_dependency(): void
32
    {
33
        $_SERVER['REQUEST_URI'] = 'https://example.org/expected';
34
        $_SERVER['REQUEST_METHOD'] = 'GET';
35
        $_GET['name'] = 'Katarn';
36
37
        $this->expectOutputString('Katarn');
38
39
        Router::configure(static function (Routes $routes): void {
40
            $routes->get('expected', FakeControllerWithRequest::class);
41
        });
42
    }
43
}
44