Test Failed
Push — master ( 73c405...d57cd2 )
by Konstantins
03:14
created

RequestRouteCollection::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 5
ccs 4
cts 4
cp 1
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 3
nc 1
nop 2
crap 1
1
<?php declare(strict_types = 1);
2
3
namespace Venta\Routing;
4
5
use Psr\Http\Message\ServerRequestInterface;
6
use Venta\Contracts\Routing\ImmutableRouteCollection as RouteCollectionContract;
7
8
/**
9
 * Class RequestRouteCollection
10
 *
11
 * @package Venta\Routing
12
 */
13
final class RequestRouteCollection implements RouteCollectionContract
14
{
15
16
    /**
17
     * @var ServerRequestInterface
18
     */
19
    private $request;
20
21
    /**
22
     * @var RouteCollectionContract
23
     */
24
    private $routes;
25
26
    /**
27
     * RequestRouteCollection constructor.
28
     *
29
     * @param ServerRequestInterface $request
30
     * @param RouteCollectionContract $routes
31
     */
32 4
    public function __construct(ServerRequestInterface $request, RouteCollectionContract $routes)
33
    {
34 4
        $this->request = $request;
35 4
        $this->routes = $routes;
36 4
    }
37
38
    /**
39
     * @inheritDoc
40
     */
41
    public function findByName(string $routeName)
42
    {
43
        return $this->routes->findByName($routeName);
44
    }
45
46
    /**
47
     * @inheritDoc
48
     */
49 2
    public function all(): array
50
    {
51 2
        $routes = [];
52 2
        foreach ($this->routes->all() as $route) {
53 1
            if ((!$route->host() || $route->host() === $this->request->getUri()->getHost())
54 1
                && (!$route->scheme() || $route->scheme() === $this->request->getUri()->getScheme())
55
            ) {
56 1
                $routes[] = $route;
57
            }
58
        }
59
60 2
        return $routes;
61
    }
62
63
}
64