Passed
Pull Request — master (#4)
by Ayan
05:45
created

ControllerTest::testRoutingTable()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 14

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 14
rs 9.7998
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php namespace Phprest\Util;
2
3
use Phprest\Application;
4
use Phprest\Stub\Controller\Routed as RoutedController;
5
use Phprest\Router\RouteCollection;
6
use League\Container\Container;
7
use Doctrine\Common\Annotations\AnnotationRegistry;
8
use PHPUnit\Framework\TestCase;
9
10
class ControllerTest extends TestCase
11
{
12
    /**
13
     * @var RoutedController
14
     */
15
    private $controller;
16
17
    /**
18
     * @var RouteCollection
19
     */
20
    private $router;
21
22
    public static function setUpBeforeClass()
23
    {
24
        AnnotationRegistry::registerLoader('class_exists');
25
    }
26
27
    public function setUp()
28
    {
29
        $this->router = new RouteCollection();
30
31
        $container = new Container();
32
        $container->add(Application::CONTAINER_ID_ROUTER, $this->router);
33
34
        $this->controller = new RoutedController($container);
35
    }
36
37
    public function testRoutingTable(): void
38
    {
39
        $routingTable = $this->router->getRoutingTable();
40
41
        $this->assertCount(2, $routingTable);
42
43
        $this->assertEquals('GET', $routingTable[0]['method']);
44
        $this->assertEquals('\Phprest\Stub\Controller\Routed::getFoo', $routingTable[0]['handler']);
45
        $this->assertEquals('/{version:(?:1\.[2-9])|(?:2\.[0-8])}/foos/{id}', $routingTable[0]['route']);
46
47
        $this->assertEquals('POST', $routingTable[1]['method']);
48
        $this->assertEquals('\Phprest\Stub\Controller\Routed::postBar', $routingTable[1]['handler']);
49
        $this->assertEquals('/{version:(?:0\.[5-7])}/bars', $routingTable[1]['route']);
50
    }
51
}
52