CompareHelperTest::testCheckRule()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 32

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 32
rs 9.408
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
/*
3
 * @copyright (c) 2020 Mendel <[email protected]>
4
 * @license see license.txt
5
 */
6
namespace drycart\data\tests;
7
use drycart\data\CompareHelper;
8
9
/**
10
 * @2DO: add test for compareByOrders
11
 * @2DO: add test for aliases
12
 * 
13
 * @author mendel
14
 */
15
class CompareHelperTest extends \PHPUnit\Framework\TestCase
16
{    
17
    public function testCheckRule()
18
    {
19
        $this->assertTrue(CompareHelper::compareByRule('<=', 100, 150));
20
        $this->assertTrue(CompareHelper::compareByRule('>=', 100, 80));
21
        $this->assertTrue(CompareHelper::compareByRule('<', 100, 150));
22
        $this->assertTrue(CompareHelper::compareByRule('>', 100, 80));
23
        $this->assertTrue(CompareHelper::compareByRule('=', 100, 100));
24
        $this->assertTrue(CompareHelper::compareByRule('!=', 100, 1));
25
        $this->assertTrue(CompareHelper::compareByRule('like:', 'Hello World!', 'Hello %!'));
26
        $this->assertTrue(CompareHelper::compareByRule('!like:', 'Hello World!', 'Bye %!'));
27
        $this->assertTrue(CompareHelper::compareByRule('contain:', ['a','b','c'], 'b'));
28
        $this->assertTrue(CompareHelper::compareByRule('!contain:', ['a','b','c'], 'd'));
29
        $this->assertTrue(CompareHelper::compareByRule('in:', 'b', ['a','b','c']));
30
        $this->assertTrue(CompareHelper::compareByRule('!in:', 'd', ['a','b','c']));
31
        //
32
        $this->assertFalse(CompareHelper::compareByRule('<=', 100, 80));
33
        $this->assertFalse(CompareHelper::compareByRule('>=', 100, 150));
34
        $this->assertFalse(CompareHelper::compareByRule('<', 100, 80));
35
        $this->assertFalse(CompareHelper::compareByRule('>', 100, 150));
36
        $this->assertFalse(CompareHelper::compareByRule('=', 100, 1));
37
        $this->assertFalse(CompareHelper::compareByRule('!=', 100, 100));
38
        $this->assertFalse(CompareHelper::compareByRule('like:', 'Hello World!', 'Bue %!'));
39
        $this->assertFalse(CompareHelper::compareByRule('!like:', 'Hello World!', 'Hello %!'));
40
        $this->assertFalse(CompareHelper::compareByRule('contain:', ['a','b','c'], 'd'));
41
        $this->assertFalse(CompareHelper::compareByRule('!contain:', ['a','b','c'], 'b'));
42
        $this->assertFalse(CompareHelper::compareByRule('in:', 'd', ['a','b','c']));
43
        $this->assertFalse(CompareHelper::compareByRule('!in:', 'b', ['a','b','c']));
44
        //
45
        $this->expectException(\UnexpectedValueException::class);
46
        $this->expectExceptionMessage("Unknown rule notExistRule:");
47
        CompareHelper::compareByRule('notExistRule:', 'a', 'a');
48
    }
49
}
50