Passed
Push — master ( eabf67...a606bb )
by Alexander
07:46
created

BooleanTest   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 34
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 18
c 0
b 0
f 0
dl 0
loc 34
rs 10
wmc 2
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Yiisoft\Validator\Tests\Rule;
6
7
use PHPUnit\Framework\TestCase;
8
use Yiisoft\Validator\Rule;
9
use Yiisoft\Validator\Rule\Boolean;
10
11
/**
12
 * @group validators
13
 */
14
class BooleanTest extends TestCase
15
{
16
    public function validateProvider(): array
17
    {
18
        return [
19
            [new Boolean(), true, true],
20
            [new Boolean(), false, true],
21
22
            [new Boolean(), '0', true],
23
            [new Boolean(), '1', true],
24
            [new Boolean(), '5', false],
25
26
            [new Boolean(), null, false],
27
            [new Boolean(), [], false],
28
29
            [(new Boolean())->strict(true), '0', true],
30
            [(new Boolean())->strict(true), '1', true],
31
32
            [(new Boolean())->strict(true), true, false],
33
            [(new Boolean())->strict(true), false, false],
34
35
            [(new Boolean())->strict(true)->trueValue(true)->falseValue(false), '0', false],
36
            [(new Boolean())->strict(true)->trueValue(true)->falseValue(false), [], false],
37
            [(new Boolean())->strict(true)->trueValue(true)->falseValue(false), true, true],
38
            [(new Boolean())->strict(true)->trueValue(true)->falseValue(false), false, true],
39
        ];
40
    }
41
42
    /**
43
     * @dataProvider validateProvider
44
     */
45
    public function testValidate(Rule $rule, $value, bool $expected): void
46
    {
47
        $this->assertSame($expected, $rule->validate($value)->isValid());
48
    }
49
}
50