Passed
Push — master ( f3dde3...f14a68 )
by Alex
01:32
created

testFetchUnexistingRouteByName()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 10
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 3
nc 1
nop 0
dl 0
loc 10
rs 10
c 1
b 0
f 0
1
<?php
2
use PHPUnit\Framework\TestCase;
3
4
class ReverseRouteUnitTest extends TestCase
5
{
6
7
    /**
8
     * Data provider for the test testReverseRouteByName
9
     *
10
     * @return array test data
11
     */
12
    public function reverseRouteByNameDataProvider(): array
13
    {
14
        return [
15
            [
16
                'named-route-url',
17
                [],
18
                'named-route-url'
19
            ],
20
            [
21
                'route-with-params/[i:id]',
22
                [
23
                    'id' => 123
24
                ],
25
                'route-with-params/123',
26
            ],
27
            [
28
                'route-with-foo/[i:id]',
29
                [
30
                    'foo' => 123
31
                ],
32
                'route-with-foo/[i:id]',
33
            ],
34
            [
35
                'route-no-params/[i:id]',
36
                [],
37
                'route-no-params/[i:id]',
38
            ]
39
        ];
40
    }
41
42
    /**
43
     * Testing reverse route by it's name
44
     *
45
     * @param string $route
46
     *            route
47
     * @param array $parameters
48
     *            parameters to be substituted
49
     * @param string $extectedResult
50
     *            quite obviuous to describe it here )
51
     * @dataProvider reverseRouteByNameDataProvider
52
     */
53
    public function testReverseRouteByName(string $route, array $parameters, string $extectedResult): void
54
    {
55
        // setup
56
        $router = new \Mezon\Router\Router();
57
        $router->addRoute($route, function () {
58
            return 'named route result';
59
        }, 'GET', 'named-route');
60
61
        // test body
62
        $url = $router->reverse('named-route', $parameters);
63
64
        // assertions
65
        $this->assertEquals($extectedResult, $url);
66
    }
67
68
    /**
69
     * Trying to fetch unexisting route by name
70
     */
71
    public function testFetchUnexistingRouteByName(): void
72
    {
73
        // setup
74
        $router = new \Mezon\Router\Router();
75
76
        // assertions
77
        $this->expectException(\Exception::class);
78
79
        // test body
80
        $router->getRouteByName('unexisting-name');
81
    }
82
}
83