Passed
Branch master (e8fd46)
by Alexey
02:50
created

InputSpec   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 36
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Importance

Changes 0
Metric Value
dl 0
loc 36
rs 10
c 0
b 0
f 0
wmc 6
lcom 0
cbo 2
1
<?php
2
3
namespace spec\Venta\Adr;
4
5
use PhpSpec\ObjectBehavior;
6
use Venta\Contracts\Http\Request;
7
8
class InputSpec extends ObjectBehavior
9
{
10
    function let(Request $request)
11
    {
12
        $request->getQueryParams()->willReturn(['query' => 'value']);
13
        $request->getParsedBody()->willReturn(['body' => 'value']);
14
        $request->getUploadedFiles()->willReturn(['files' => 'value']);
15
        $request->getCookieParams()->willReturn(['cookie' => 'value']);
16
        $request->getAttributes()->willReturn(['attribute' => 'value']);
17
    }
18
19
    public function getMatchers()
20
    {
21
        return [
22
            'containKeys' => function ($subject, ...$keys) {
23
                foreach ($keys as $key) {
24
                    if (!array_key_exists($key, $subject[0])) {
25
                        return false;
26
                    }
27
                }
28
29
                return true;
30
            },
31
        ];
32
    }
33
34
    function it_converts_server_request_to_array(Request $request)
35
    {
36
        $this->process($request)->shouldContainKeys('query', 'body', 'files', 'cookie', 'attribute');
37
    }
38
39
    function it_is_initializable()
40
    {
41
        $this->shouldImplement(\Venta\Contracts\Adr\Input::class);
42
    }
43
}
44