Passed
Pull Request — master (#380)
by Wilmer
06:00 queued 02:33
created

AbstractQueryCacheTest::testSetInfo()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 11
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 5
nc 1
nop 0
dl 0
loc 11
rs 10
c 1
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Yiisoft\Db\Tests;
6
7
use PHPUnit\Framework\TestCase;
8
use Yiisoft\Cache\CacheInterface;
9
use Yiisoft\Cache\Dependency\TagDependency;
10
use Yiisoft\Db\Cache\QueryCache;
11
use Yiisoft\Db\Tests\Support\Assert;
12
use Yiisoft\Db\Tests\Support\TestTrait;
13
14
abstract class AbstractQueryCacheTest extends TestCase
15
{
16
    use TestTrait;
17
18
    public function testConstruct(): void
19
    {
20
        $queryCache = new QueryCache($this->getCache());
21
22
        $this->assertInstanceOf(CacheInterface::class, Assert::getInaccessibleProperty($queryCache, 'cache'));
23
    }
24
25
    public function testInfo(): void
26
    {
27
        $queryCache = new QueryCache($this->getCache());
28
29
        $tagDependency = new TagDependency('tag');
30
        $queryCache->setInfo([3600, $tagDependency]);
31
32
        $this->assertIsArray($queryCache->info(null));
33
        $this->assertIsArray($queryCache->info(3600));
34
    }
35
36
    public function testIsEnabled(): void
37
    {
38
        $queryCache = new QueryCache($this->getCache());
39
40
        $this->assertTrue($queryCache->isEnabled());
41
    }
42
43
    public function testRemoveLastInfo(): void
44
    {
45
        $queryCache = new QueryCache($this->getCache());
46
47
        $tagDependency = new TagDependency('tag');
48
        $queryCache->setInfo([3600, $tagDependency]);
49
50
        $this->assertIsArray($queryCache->info(null));
51
        $this->assertIsArray($queryCache->info(3600));
52
53
        $queryCache->removeLastInfo();
54
55
        $this->assertNull($queryCache->info(null));
56
        $this->assertIsArray($queryCache->info(3600));
57
    }
58
59
    public function testSetDuration(): void
60
    {
61
        $queryCache = new QueryCache($this->getCache());
62
63
        $queryCache->setDuration(10);
64
65
        $this->assertSame(10, $queryCache->getDuration());
66
    }
67
68
    public function testSetEnable(): void
69
    {
70
        $queryCache = new QueryCache($this->getCache());
71
72
        $queryCache->setEnable(false);
73
74
        $this->assertFalse($queryCache->isEnabled());
75
    }
76
77
    public function testSetInfo(): void
78
    {
79
        $queryCache = new QueryCache($this->getCache());
80
81
        $queryCache->setInfo('test');
82
83
        $this->assertSame(['test'], Assert::getInaccessibleProperty($queryCache, 'info'));
84
85
        $queryCache->setInfo(['test2']);
86
87
        $this->assertSame(['test', ['test2']], Assert::getInaccessibleProperty($queryCache, 'info'));
88
    }
89
}
90