Пример #1
0
 public function testGetArray()
 {
     $type = 'type';
     $id = 'id';
     $value = 'value';
     $object1 = new CacheObject($type, $id . '1', $value . '1');
     $object2 = new CacheObject($type, $id . '2', $value . '2');
     $object3 = new CacheObject($type, $id . '3', $value . '3');
     $objects = array($object1, $object2, $object3);
     $time = time();
     $accessed = 0;
     $this->assertEquals($time, $object1->getCreationDate());
     $this->assertEquals($time, $object1->getLastAccessDate());
     $this->assertEquals($accessed, $object1->getTimesAccessed());
     $this->assertEquals($time, $object2->getCreationDate());
     $this->assertEquals($time, $object2->getLastAccessDate());
     $this->assertEquals($accessed, $object2->getTimesAccessed());
     $this->assertEquals($time, $object3->getCreationDate());
     $this->assertEquals($time, $object3->getLastAccessDate());
     $this->assertEquals($accessed, $object3->getTimesAccessed());
     $IOMock = $this->getMock('zibo\\library\\cache\\io\\CacheIO', array('readFromCache', 'clearCache', 'writeToCache'));
     $IOMock->expects($this->once())->method('readFromCache')->with($this->equalTo($type))->will($this->returnValue($objects));
     sleep(1);
     $updatedTime = $time + 1;
     $accessed++;
     $cache = new ExtendedCache($IOMock);
     $result = $cache->get($type);
     $values = array('value1', 'value2', 'value3');
     $this->assertEquals($values, $result);
     $this->assertEquals($time, $object2->getCreationDate());
     $this->assertTrue($object2->getLastAccessDate() > $updatedTime - 1);
     $this->assertTrue($object2->getLastAccessDate() < $updatedTime + 1);
     $this->assertEquals($accessed, $object2->getTimesAccessed());
 }
Пример #2
0
 public function testAccess()
 {
     $time = time();
     $cache = new CacheObject('type', 'id', '');
     sleep(1);
     $cache->access();
     $accessTime = $time + 1;
     $this->assertEquals(1, $cache->getTimesAccessed());
     $this->assertEquals($time, $cache->getCreationDate());
     $this->assertEquals($accessTime, $cache->getLastAccessDate());
 }
Пример #3
0
 /**
  * Checks if the provided cache objects needs to be cleared
  * @param CacheObject $object Cache object to check
  * @return boolean True if the cache objects needs to be cleared,
  * false otherwise
  */
 private function needCleanUp(CacheObject $object)
 {
     $cleanUpTimes = $this->getCleanUpTimes();
     if ($cleanUpTimes && $object->getTimesAccessed() >= $cleanUpTimes) {
         return true;
     }
     $cleanUpAge = $this->getCleanUpAge();
     if ($cleanUpAge) {
         $objectAge = $object->getLastAccessDate() - $object->getCreationDate();
         if ($objectAge >= $cleanUpAge) {
             return true;
         }
     }
     return false;
 }