CacheManagerBootstrapperTest   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 66
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 31
c 1
b 0
f 0
dl 0
loc 66
rs 10
wmc 5

5 Methods

Rating   Name   Duplication   Size   Complexity  
A testRegisterBindingsMemcachedBridge() 0 15 1
A setUp() 0 3 1
A testRegisterBindingsFileBridge() 0 10 1
A testRegisterBindingsRedisBridge() 0 15 1
A testRegisterBindingsArrayBridge() 0 10 1
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