Start adding basic login infrastructure (still needs styling)
[gitphp.git] / test / cache / MemoryCacheTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<?php
/**
 * MemoryCache test class
 *
 * @author Christopher Han <xiphux@gmail.com>
 * @copyright Copyright (c) 2012 Christopher Han
 * @package GitPHP
 * @subpackage Test\Cache
 */
class GitPHP_MemoryCacheTest extends PHPUnit_Framework_TestCase
{
        protected $cache;
 
        protected function setUp()
        {
                $this->cache = new GitPHP_MemoryCache();
        }
 
        public function testCache()
        {
                $this->assertFalse($this->cache->Exists('somekey'));
 
                $this->cache->Set('somekey', 'somevalue');
                $this->assertTrue($this->cache->Exists('somekey'));
                $this->assertEquals('somevalue', $this->cache->Get('somekey'));
 
                $this->cache->Set('otherkey', 'othervalue');
                $this->assertTrue($this->cache->Exists('otherkey'));
 
                $this->cache->Delete('somekey');
                $this->assertFalse($this->cache->Exists('somekey'));
                $this->assertNull($this->cache->Get('somekey'));
 
                $this->cache->Clear();
                $this->assertFalse($this->cache->Exists('otherkey'));
                $this->assertEquals(0, $this->cache->GetCount());
        }
 
        public function testSize()
        {
                $this->cache->SetSize(50);
 
                for ($i = 1; $i <= 51; ++$i) {
                        $this->cache->Set('testkey' . $i, 'testvalue' . $i);
                }
                $this->assertFalse($this->cache->Exists('testkey1'));
 
                $this->cache->Clear();
 
                for ($i = 1; $i <= 50; ++$i) {
                        $this->cache->Set('testkey' . $i, 'testvalue' . $i);
                }
                $this->assertEquals('testvalue1', $this->cache->Get('testkey1'));
                $this->cache->Set('testkey51', 'testvalue51');
                $this->assertEquals(50, $this->cache->GetCount());
                $this->assertTrue($this->cache->Exists('testkey1'));
                $this->assertFalse($this->cache->Exists('testkey2'));
 
                $this->cache->Clear();
 
                for ($i = 1; $i <= 50; ++$i) {
                        $this->cache->Set('testkey' . $i, 'testvalue' . $i);
                }
                $this->cache->Set('testkey1', 'testvalue1');
                $this->cache->Set('testkey51', 'testvalue51');
                $this->assertTrue($this->cache->Exists('testkey1'));
                $this->assertFalse($this->cache->Exists('testkey2'));
 
                $this->cache->Clear();
                $this->cache->SetSize(0);
        }
 
        public function testAutoManage()
        {
                $this->cache->SetAutoManaged(true);
                $this->assertTrue($this->cache->GetAutoManaged());
 
                $this->cache->Set('project|project1', 'project1value');
                $this->assertTrue($this->cache->Exists('project|project1'));
 
                $this->cache->Set('project|project2', 'project2value');
 
                $this->assertFalse($this->cache->Exists('project|project1'));
                $this->assertTrue($this->cache->Exists('project|project2'));
                $this->assertEquals(1, $this->cache->GetCount());
 
                $this->cache->Clear();
        }
}
 
comments