Passed
Push — main ( 66f102...e7c7b0 )
by Yevhenii
02:28
created

URLPaginationEnum::calculate()   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
eloc 3
nc 1
nop 2
dl 0
loc 5
c 0
b 0
f 0
cc 1
rs 10
ccs 4
cts 4
cp 1
crap 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace SteamMarketProviders\ParserManager\Enum;
6
7
use SteamMarketProviders\ParserManager\Contract\PaginationInterface;
8
use SteamMarketProviders\ParserManager\Exception\InvalidArgumentException;
9
10
enum URLPaginationEnum: string implements PaginationInterface
11
{
12
    case Start = 'start';
13
    case Count = 'count';
14
15
    /**
16
     * @param int $page
17
     * @param int $count
18
     * @return int
19
     * @throws InvalidArgumentException
20
     */
21 2
    public function calculate(int $page = 1, int $count = 10): int
22
    {
23 2
        return match ($this) {
24 2
            self::Start => $page * $count,
25 2
            default => throw new InvalidArgumentException('Unexpected match value'),
26
        };
27
    }
28
}
29