Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
14 / 14
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
1 / 1
Between
100.00% covered (success)
100.00%
14 / 14
100.00% covered (success)
100.00%
2 / 2
2
100.00% covered (success)
100.00%
1 / 1
 create
100.00% covered (success)
100.00%
13 / 13
100.00% covered (success)
100.00%
1 / 1
1
 filter
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3declare(strict_types=1);
4
5namespace Projom\Storage\SQL\Component\Filter;
6
7use Projom\Storage\SQL\Component\Column;
8use Projom\Storage\SQL\Util\Operator;
9
10class Between
11{
12    public static function create(Column $column, Operator $operator, array $values, int $filterID): array
13    {
14        [$value1, $value2] = $values;
15
16        $parameterName = Util::parameterName($column->fields(), $filterID);
17
18        $parameterName1 = "{$parameterName}_1";
19        $parameterName2 = "{$parameterName}_2";
20
21        $filter = static::filter($column, $operator, $parameterName1, $parameterName2);
22
23        $params = [
24            $parameterName1 => $value1,
25            $parameterName2 => $value2
26        ];
27
28        return [
29            $filter,
30            $params
31        ];
32    }
33
34    public static function filter(Column $column, Operator $operator, string $parameterName1, string $parameterName2): string
35    {
36        return "{$column} {$operator->value} :{$parameterName1} AND :{$parameterName2}";
37    }
38}