dropCollection(static::$cacheCollection); parent::tearDown(); } /** * Creates test cache instance. * @return Cache cache instance. */ protected function createCache() { return Yii::createObject([ 'class' => Cache::className(), 'db' => $this->getConnection(), 'cacheCollection' => static::$cacheCollection, 'gcProbability' => 0, ]); } // Tests: public function testSet() { $cache = $this->createCache(); $key = 'test_key'; $value = 'test_value'; $this->assertTrue($cache->set($key, $value), 'Unable to set value!'); $this->assertEquals($value, $cache->get($key), 'Unable to set value correctly!'); $newValue = 'test_new_value'; $this->assertTrue($cache->set($key, $newValue), 'Unable to update value!'); $this->assertEquals($newValue, $cache->get($key), 'Unable to update value correctly!'); } public function testAdd() { $cache = $this->createCache(); $key = 'test_key'; $value = 'test_value'; $this->assertTrue($cache->add($key, $value), 'Unable to add value!'); $this->assertEquals($value, $cache->get($key), 'Unable to add value correctly!'); $newValue = 'test_new_value'; $this->assertTrue($cache->add($key, $newValue), 'Unable to re-add value!'); $this->assertEquals($value, $cache->get($key), 'Original value is lost!'); } /** * @depends testSet */ public function testDelete() { $cache = $this->createCache(); $key = 'test_key'; $value = 'test_value'; $cache->set($key, $value); $this->assertTrue($cache->delete($key), 'Unable to delete key!'); $this->assertEquals(false, $cache->get($key), 'Value is not deleted!'); } /** * @depends testSet */ public function testFlush() { $cache = $this->createCache(); $cache->set('key1', 'value1'); $cache->set('key2', 'value2'); $this->assertTrue($cache->flush(), 'Unable to flush cache!'); $collection = $cache->db->getCollection($cache->cacheCollection); $rows = $this->findAll($collection); $this->assertCount(0, $rows, 'Unable to flush records!'); } /** * @depends testSet */ public function testGc() { $cache = $this->createCache(); $cache->set('key1', 'value1'); $cache->set('key2', 'value2'); $collection = $cache->db->getCollection($cache->cacheCollection); list($row) = $this->findAll($collection); $collection->update(['_id' => $row['_id']], ['expire' => time() - 10]); $cache->gc(true); $rows = $this->findAll($collection); $this->assertCount(1, $rows, 'Unable to collect garbage!'); } /** * @depends testSet */ public function testGetExpired() { $cache = $this->createCache(); $key = 'test_key'; $value = 'test_value'; $cache->set($key, $value); $collection = $cache->db->getCollection($cache->cacheCollection); list($row) = $this->findAll($collection); $collection->update(['_id' => $row['_id']], ['expire' => time() - 10]); $this->assertEquals(false, $cache->get($key), 'Expired key value returned!'); } }