Completed
Push — master ( c84cf5...76fdc2 )
by Mehmet
02:45
created

MemcachedCacheTest::testMultiSetGetDeleteItems()   A

Complexity

Conditions 3
Paths 4

Size

Total Lines 23
Code Lines 15

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 23
rs 9.0856
cc 3
eloc 15
nc 4
nop 0
1
<?php
2
namespace tests;
3
4
use Soupmix;
5
6
class MemcachedCacheTest extends \PHPUnit_Framework_TestCase
7
{
8
    /**
9
     * @var \Soupmix\Cache\MemcachedCache $client
10
     */
11
    protected $client = null;
12
13
    protected function setUp()
14
    {
15
        $this->client = new Soupmix\Cache\MemcachedCache([
16
            'bucket' => 'test',
17
            'hosts'   => ['127.0.0.1'],
18
        ]);
19
        $this->client->clear();
20
    }
21
22
    public function testSetGetDeleteItem()
23
    {
24
        $ins1 = $this->client->set('test1','value1');
25
        $this->assertTrue($ins1);
26
        $value1 = $this->client->get('test1');
27
        $this->assertEquals('value1',$value1);
28
        $delete = $this->client->delete('test1');
29
        $this->assertTrue($delete);
30
    }
31
32
    public function testMultiSetGetDeleteItems()
33
    {
34
        $cacheData = [
35
            'test1' => 'value1',
36
            'test2' => 'value2',
37
            'test3' => 'value3',
38
            'test4' => 'value4'
39
        ];
40
        $insMulti = $this->client->setMultiple($cacheData);
41
        $this->assertTrue($insMulti);
42
43
        $getMulti = $this->client->getMultiple(array_keys($cacheData));
44
45
        foreach ($cacheData as $key => $value) {
46
            $this->assertArrayHasKey($key, $getMulti);
47
            $this->assertEquals($value, $getMulti[$key]);
48
        }
49
        $deleteMulti = $this->client->deleteMultiple(array_keys($cacheData));
50
51
        foreach ($cacheData as $key => $value) {
52
            $this->assertTrue($deleteMulti[$key]);
53
        }
54
    }
55
56
    public function testIncrementDecrementItem()
57
    {
58
        $this->client->set('counter', 0);
59
        $counter_i_1 = $this->client->increment('counter', 1);
60
        $this->assertEquals(1, $counter_i_1);
61
        $counter_i_3 = $this->client->increment('counter', 2);
62
        $this->assertEquals(3, $counter_i_3);
63
        $counter_i_4 = $this->client->increment('counter');
64
        $this->assertEquals(4, $counter_i_4);
65
        $counter_d_3 = $this->client->decrement('counter');
66
        $this->assertEquals(3, $counter_d_3);
67
        $counter_d_1 = $this->client->decrement('counter', 2);
68
        $this->assertEquals(1, $counter_d_1);
69
        $counter_d_0 = $this->client->decrement('counter', 1);
70
        $this->assertEquals(0, $counter_d_0);
71
    }
72
73
    public function testClear(){
74
        $clear = $this->client->clear();
75
        $this->assertTrue($clear);
76
    }
77
78
}
79