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

WalkablePaginator   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 22
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 2
dl 0
loc 22
ccs 10
cts 10
cp 1
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A getResults() 0 8 1
A __construct() 0 4 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