Passed
Push — master ( 82a58b...d35cf8 )
by Tomasz
02:32
created

WalkablePaginator::getResults()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 6
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 8
ccs 6
cts 6
cp 1
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 5
nc 1
nop 0
crap 1
1
<?php
2
declare(strict_types=1);
3
4
namespace ReadModel;
5
6
use Assert\Assertion;
7
use ReadModel\Walker\NullWalker;
8
use ReadModel\Walker\ResultWalker;
9
10
abstract class WalkablePaginator extends Paginator
11
{
12
    /** @var ResultWalker */
13
    protected $resultWalker;
14
15 2
    public function __construct(?int $limit, int $offset, ResultWalker $resultWalker = null)
16
    {
17 2
        parent::__construct($limit, $offset);
18 2
        $this->resultWalker = $resultWalker ?? new NullWalker();
19 2
    }
20
21
    /**
22
     * @return array<array>
23
     */
24 2
    public function getResults(): array
25
    {
26 2
        $results = parent::getResults();
27 2
        Assertion::allIsArray($results, 'For WalkablePaginator getResults() method must return array of arrays');
28
29 2
        return array_map(function (array $row) {
30 2
            return $this->resultWalker->walk($row);
31 2
        }, $results);
32
    }
33
}
34