MemoryCacheTest.php 2.4 KB

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