Passed
Push — master ( 62264f...226050 )
by Petr
08:16
created

DataSourceRuleTest   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 27
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 1
eloc 15
c 0
b 0
f 0
dl 0
loc 27
rs 10
1
<?php
2
3
namespace coreTests\Rules;
4
5
6
use CommonTestClass;
7
use kalanis\kw_connect\arrays\Connector;
8
use kalanis\kw_connect\core\ConnectException;
9
use kalanis\kw_table\core\Table\Rules;
10
use kalanis\kw_table\core\TableException;
11
12
13
class DataSourceRuleTest extends CommonTestClass
14
{
15
    /**
16
     * @throws ConnectException
17
     * @throws TableException
18
     */
19
    public function testMatch(): void
20
    {
21
        $conn = new Connector($this->basicData());
22
        $conn->fetchData(); // because data translation
23
        $lib = new Rules\DataSourceSet();
24
        $lib->setDataSource($conn);
25
26
        $lib->addRule(new Rules\Always('first extra rule'), 'name');
27
        $lib->addRule(new Rules\Always('another extra rule'), 'desc');
28
29
        $lib->allMustPass(false);
30
        $this->assertTrue($lib->validate('unknown')); // pass because selected rules ignore the values
31
32
        $lib->allMustPass(true);
33
        $this->assertTrue($lib->validate(1));
34
35
        $lib->addRule(new Rules\Negate(new Rules\Always('this will fail them')), 'size');
36
        $this->assertFalse($lib->validate(2));
37
38
        $lib->allMustPass(false);
39
        $this->assertTrue($lib->validate(3));
40
    }
41
}
42