Completed
Push — master ( 4d65fa...1a0d8a )
by
unknown
12s
created

testGetItems()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 9
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 9
rs 9.6666
c 0
b 0
f 0
cc 2
eloc 5
nc 2
nop 0
1
<?php
2
3
namespace MovingImage\Bundle\VMProApiBundle\Tests\Decorator;
4
5
use MovingImage\Bundle\VMProApiBundle\Decorator\BlackholeCacheItemDecorator;
6
use MovingImage\Bundle\VMProApiBundle\Decorator\BlackholeCacheItemPoolDecorator;
7
use PHPUnit\Framework\TestCase;
8
use Psr\Cache\CacheItemPoolInterface;
9
use Symfony\Component\Cache\Adapter\ArrayAdapter;
10
11
class BlackholeCacheItemPoolDecoratorTest extends TestCase
12
{
13
    /**
14
     * Asserts that blackhole pool will always report a cache miss.
15
     */
16
    public function testIsHit()
17
    {
18
        $cachePool = $this->getCachePool(['test' => 'test']);
19
20
        $blackholePool = new BlackholeCacheItemPoolDecorator($cachePool);
21
22
        $this->assertTrue($cachePool->getItem('test')->isHit());
23
        $this->assertFalse($blackholePool->getItem('test')->isHit());
24
    }
25
26
    /**
27
     * Asserts that item returned by the blackhole pool is the correct type.
28
     */
29
    public function testGetItem()
30
    {
31
        $cachePool = $this->getCachePool(['test' => 'test']);
32
        $blackholePool = new BlackholeCacheItemPoolDecorator($cachePool);
33
34
        $this->assertInstanceOf(BlackholeCacheItemDecorator::class, $blackholePool->getItem('test'));
35
    }
36
37
    /**
38
     * Asserts that items returned by the blackhole pool are the correct type.
39
     */
40
    public function testGetItems()
41
    {
42
        $cachePool = $this->getCachePool(['test1' => 'test1', 'test2' => 'test2']);
43
        $blackholePool = new BlackholeCacheItemPoolDecorator($cachePool);
44
45
        foreach ($blackholePool->getItems(['test1', 'test2']) as $item) {
46
            $this->assertInstanceOf(BlackholeCacheItemDecorator::class, $item);
47
        }
48
    }
49
50
    /**
51
     * Asserts that decorated item returned by the blackhole pool is of the correct type.
52
     */
53
    public function testGetDecoratedItem()
54
    {
55
        $cachePool = $this->getCachePool(['test' => 'test']);
56
        $cacheItem = $cachePool->getItem('test');
57
        $blackholePool = new BlackholeCacheItemPoolDecorator($cachePool);
58
        $blackholeItem = $blackholePool->getItem('test');
59
60
        $this->assertInstanceOf(get_class($cacheItem), $blackholeItem->getDecoratedItem());
61
    }
62
63
    /**
64
     * Returns an implementation of the CacheItemPoolInterface
65
     * initialized with the values provided in the array.
66
     *
67
     * @param array $values
68
     *
69
     * @return CacheItemPoolInterface
70
     */
71
    private function getCachePool(array $values)
72
    {
73
        $cachePool = new ArrayAdapter();
74
        foreach ($values as $key => $value) {
75
            $cacheItem = $cachePool->getItem($key);
76
            $cacheItem->set($value);
77
            $cachePool->save($cacheItem);
78
        }
79
80
        return $cachePool;
81
    }
82
}
83