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

RoutePathParserSpec   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 39
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Importance

Changes 0
Metric Value
dl 0
loc 39
rs 10
c 0
b 0
f 0
wmc 7
lcom 0
cbo 1
1
<?php
2
3
namespace spec\Venta\Routing;
4
5
use PhpSpec\ObjectBehavior;
6
use Venta\Routing\RoutePathParser;
7
8
class RoutePathParserSpec extends ObjectBehavior
9
{
10
    function it_allows_to_add_regex_aliases()
11
    {
12
        $this::addRegexAlias('alias', 'regex');
13
        $this::replaceRegexAliases('{var:alias}')->shouldReturn('{var:regex}');
14
    }
15
16
    function it_does_not_replace_undefined_regex_aliases()
17
    {
18
        $this::replaceRegexAliases('{var:\d+}')->shouldReturn('{var:\d+}');
19
    }
20
21
    function it_is_initializable()
22
    {
23
        $this->shouldHaveType(RoutePathParser::class);
24
    }
25
26
    function it_replaces_alphanum_alias()
27
    {
28
        $this::replaceRegexAliases('{var:alphanum}')->shouldReturn('{var:[a-zA-Z0-9-_]+}');
29
    }
30
31
    function it_replaces_number_alias()
32
    {
33
        $this::replaceRegexAliases('{var:number}')->shouldReturn('{var:[0-9]+}');
34
    }
35
36
    function it_replaces_slug_alias()
37
    {
38
        $this::replaceRegexAliases('{var:slug}')->shouldReturn('{var:[a-z0-9-]+}');
39
    }
40
41
    function it_replaces_word_alias()
42
    {
43
        $this::replaceRegexAliases('{var:word}')->shouldReturn('{var:[a-zA-Z]+}');
44
    }
45
46
}
47