Passed
Branch master (e8fd46)
by Alexey
03:15
created

RouteDispatcherSpec   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 5

Importance

Changes 1
Bugs 0 Features 0
Metric Value
dl 0
loc 29
rs 10
c 1
b 0
f 0
wmc 3
lcom 0
cbo 5
1
<?php
2
3
namespace spec\Venta\Routing;
4
5
use PhpSpec\ObjectBehavior;
6
use Venta\Contracts\Adr\Responder;
7
use Venta\Contracts\Container\Container;
8
use Venta\Contracts\Http\Request;
9
use Venta\Contracts\Http\Response;
10
use Venta\Contracts\Routing\Delegate;
11
use Venta\Contracts\Routing\Route;
12
13
class RouteDispatcherSpec extends ObjectBehavior
14
{
15
    function let(Route $route, Container $container)
16
    {
17
        $this->beConstructedWith($route, $container);
18
    }
19
20
    function it_calls_responder_only_when_domain_is_not_callable(
21
        Container $container,
22
        Route $route,
23
        Request $request,
24
        Response $response,
25
        Responder $responder
26
    ) {
27
        $route->getDomain()->willReturn('');
28
        $route->getResponder()->willReturn(Responder::class);
29
        $container->isCallable('')->willReturn(false);
30
        $container->get(Responder::class)->willReturn($responder);
31
        $responder->run($request, null)->willReturn($response);
32
        $request->withRoute($route)->willReturn($request);
33
34
        $this->next($request)->shouldBe($response);
35
    }
36
37
    function it_is_initializable()
38
    {
39
        $this->shouldImplement(Delegate::class);
40
    }
41
}
42