GroupHandler   A
last analyzed

Complexity

Total Complexity 8

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 15
dl 0
loc 28
ccs 15
cts 15
cp 1
rs 10
c 0
b 0
f 0
wmc 8

1 Method

Rating   Name   Duplication   Size   Complexity  
B validateArguments() 0 26 8
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Yiisoft\Yii\Cycle\Data\Reader\FilterHandler;
6
7
use InvalidArgumentException;
8
use Yiisoft\Data\Reader\FilterHandlerInterface;
9
use Yiisoft\Yii\Cycle\Data\Reader\QueryBuilderFilterHandler;
10
11
abstract class GroupHandler implements QueryBuilderFilterHandler, FilterHandlerInterface
12
{
13 11
    protected function validateArguments(array $arguments): void
14
    {
15 11
        if (count($arguments) === 0) {
16 1
            throw new InvalidArgumentException('At least one argument should be provided.');
17
        }
18
19 10
        if (!is_array($arguments[0])) {
20 1
            throw new InvalidArgumentException('Sub filters is not an array.');
21
        }
22
23 9
        foreach ($arguments[0] as $subFilter) {
24 9
            if (!is_array($subFilter)) {
25 1
                throw new InvalidArgumentException('Sub filter is not an array.');
26
            }
27
28 8
            if (count($subFilter) === 0) {
29 1
                throw new InvalidArgumentException('At least operator should be provided.');
30
            }
31
32 7
            $operator = array_shift($subFilter);
33 7
            if (!is_string($operator)) {
34 1
                throw new InvalidArgumentException('Operator is not a string.');
35
            }
36
37 6
            if ($operator === '') {
38 1
                throw new InvalidArgumentException('The operator string cannot be empty.');
39
            }
40
        }
41
    }
42
}
43