MemcachedManagerTest::testSetUp()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 15
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 10
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 15
rs 9.9332
1
<?php
2
namespace RazonYang\TokenBucket\Tests;
3
4
use Psr\Log\NullLogger;
5
use RazonYang\TokenBucket\Manager\MemcachedManager;
6
7
class MemcachedManagerTest extends TestCase
8
{
9
    private $capacity = 10;
10
11
    private $rate = 1;
12
13
    private $ttl = 60;
14
15
    private $prefix = 'test:';
16
17
    /**
18
     * @var \Memcached
19
     */
20
    private $memcached;
21
22
    public function setUp(): void
23
    {
24
        parent::setUp();
25
26
        $memcached = new \Memcached();
27
        $memcached->addServer('localhost', 11211);
28
        $this->memcached = $memcached;
29
    }
30
31
    public function tearDown(): void
32
    {
33
        $this->memcached = null;
34
35
        parent::tearDown();
36
    }
37
38
    public function createManager(): MemcachedManager
39
    {
40
        return new MemcachedManager($this->capacity, $this->rate, new NullLogger(), $this->memcached, $this->ttl, $this->prefix);
41
    }
42
43
    public function testSetUp(): void
44
    {
45
        $manager = $this->createManager();
46
47
        $ttl = new \ReflectionProperty(MemcachedManager::class, 'ttl');
48
        $ttl->setAccessible(true);
49
        $this->assertSame($this->ttl, $ttl->getValue($manager));
50
51
        $prefix = new \ReflectionProperty(MemcachedManager::class, 'prefix');
52
        $prefix->setAccessible(true);
53
        $this->assertSame($this->prefix, $prefix->getValue($manager));
54
55
        $conn = new \ReflectionProperty(MemcachedManager::class, 'conn');
56
        $conn->setAccessible(true);
57
        $this->assertSame($this->memcached, $conn->getValue($manager));
58
    }
59
60
    public function testSaveAndLoad(): void
61
    {
62
        $manager = $this->createManager();
63
        $save = new \ReflectionMethod(MemcachedManager::class, 'save');
64
        $save->setAccessible(true);
65
66
        $load = new \ReflectionMethod(MemcachedManager::class, 'load');
67
        $load->setAccessible(true);
68
69
        $name = 'test';
70
        $data = uniqid();
71
        $save->invoke($manager, $name, $data);
72
73
        $this->assertSame($data, $load->invoke($manager, $name));
74
75
        $this->assertSame($data, $this->memcached->get($this->prefix . $name));
76
    }
77
}
78