Passed
Pull Request — master (#320)
by Dmitriy
12:15 queued 09:25
created

IsTrueHandler::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 1
c 1
b 0
f 0
dl 0
loc 3
ccs 2
cts 2
cp 1
rs 10
cc 1
nc 1
nop 1
crap 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Yiisoft\Validator\Rule;
6
7
use Yiisoft\Validator\Exception\UnexpectedRuleException;
8
use Yiisoft\Validator\Result;
9
use Yiisoft\Validator\RuleHandlerInterface;
10
use Yiisoft\Validator\ValidationContext;
11
12
/**
13
 * A handler for {@see IsTrue} rule.
14
 */
15
final class IsTrueHandler implements RuleHandlerInterface
16
{
17 16
    public function validate(mixed $value, object $rule, ValidationContext $context): Result
18
    {
19 16
        if (!$rule instanceof IsTrue) {
20 1
            throw new UnexpectedRuleException(IsTrue::class, $rule);
21
        }
22
23 15
        if ($rule->isStrict()) {
24 7
            $valid = $value === $rule->getTrueValue();
25
        } else {
26 8
            $valid = $value == $rule->getTrueValue();
27
        }
28
29 15
        $result = new Result();
30
31 15
        if ($valid) {
32 4
            return $result;
33
        }
34
35 11
        $result->addError(
36 11
            message: $rule->getMessage(),
37
            parameters: [
38 11
                'true' => $rule->getTrueValue() === true ? 'true' : $rule->getTrueValue(),
39
                'value' => $value,
40
            ]
41
        );
42
43 11
        return $result;
44
    }
45
}
46