CacheManagerBootstrapperTest::setUp()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 3
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
namespace AbterPhp\Framework\Bootstrappers\Authorization;
6
7
use AbterPhp\Framework\Authorization\CacheManager;
8
use Opulence\Cache\ArrayBridge;
9
use Opulence\Cache\MemcachedBridge;
10
use Opulence\Cache\RedisBridge;
11
use Opulence\Framework\Configuration\Config;
12
use Opulence\Ioc\Container;
13
use Opulence\Memcached\Memcached;
14
use Opulence\Redis\Redis;
15
use PHPUnit\Framework\TestCase;
16
17
class CacheManagerBootstrapperTest extends TestCase
18
{
19
    /** @var CacheManagerBootstrapper - System Under Test */
20
    protected CacheManagerBootstrapper $sut;
21
22
    public function setUp(): void
23
    {
24
        $this->sut = new CacheManagerBootstrapper();
25
    }
26
27
    public function testRegisterBindingsFileBridge(): void
28
    {
29
        Config::set('authorization', 'file.path', '/tmp');
30
31
        $container = new Container();
32
33
        $this->sut->registerBindings($container);
34
35
        $actual = $container->resolve(CacheManager::class);
36
        $this->assertInstanceOf(CacheManager::class, $actual);
37
    }
38
39
    public function testRegisterBindingsArrayBridge(): void
40
    {
41
        Config::set('authorization', 'cache.bridge', ArrayBridge::class);
42
43
        $container = new Container();
44
45
        $this->sut->registerBindings($container);
46
47
        $actual = $container->resolve(CacheManager::class);
48
        $this->assertInstanceOf(CacheManager::class, $actual);
49
    }
50
51
    public function testRegisterBindingsMemcachedBridge(): void
52
    {
53
        Config::set('authorization', 'cache.bridge', MemcachedBridge::class);
54
        Config::set('authorization', 'cache.clientName', 'foo');
55
        Config::set('authorization', 'cache.keyPrefix', 'bar');
56
57
        $mockMemcached = $this->getMockBuilder(Memcached::class)->disableOriginalConstructor()->getMock();
58
59
        $container = new Container();
60
        $container->bindInstance(Memcached::class, $mockMemcached);
61
62
        $this->sut->registerBindings($container);
63
64
        $actual = $container->resolve(CacheManager::class);
65
        $this->assertInstanceOf(CacheManager::class, $actual);
66
    }
67
68
    public function testRegisterBindingsRedisBridge(): void
69
    {
70
        Config::set('authorization', 'cache.bridge', RedisBridge::class);
71
        Config::set('authorization', 'cache.clientName', 'foo');
72
        Config::set('authorization', 'cache.keyPrefix', 'bar');
73
74
        $mockRedis = $this->getMockBuilder(Redis::class)->disableOriginalConstructor()->getMock();
75
76
        $container = new Container();
77
        $container->bindInstance(Redis::class, $mockRedis);
78
79
        $this->sut->registerBindings($container);
80
81
        $actual = $container->resolve(CacheManager::class);
82
        $this->assertInstanceOf(CacheManager::class, $actual);
83
    }
84
}
85