public function testInvalidateTags()
 {
     $dependency = new TagDependency(['tags' => [ActiveRecordCacheTags::getCommonTag(Table::className())], 'reusable' => true]);
     $model = Table::getDb()->cache(function ($db) {
         return Table::findOne(['title' => 'row1']);
     }, 86400, $dependency);
     $this->assertFalse($dependency->getHasChanged(Yii::$app->cache));
     $model->delete();
     $this->assertTrue($dependency->getHasChanged(Yii::$app->cache));
 }
 /**
  * Cached analogue \yii\db\ActiveRecord::findAll()
  * @param mixed $condition
  * @param int $cacheTtl
  * @return null|\yii\db\ActiveRecord[]
  */
 public static function cachedFindAll($condition, $cacheTtl = 86400)
 {
     return self::cachedFind($condition, static::class . ':all:' . ActiveRecordCacheTags::serializeCondition($condition), ActiveRecordCacheTags::getCommonTag(static::class), function ($condition) {
         return static::findByCondition($condition)->all();
     }, $cacheTtl);
 }
 /**
  * @expectedException \yii\base\InvalidParamException
  */
 public function testGetClassNameException()
 {
     ActiveRecordCacheTags::getCommonTag(['dddd']);
 }
 /**
  * Invalidate model tags.
  * @return bool
  */
 public function invalidateTags()
 {
     TagDependency::invalidate($this->getCacheComponent(), [ActiveRecordCacheTags::getCommonTag($this->owner), ActiveRecordCacheTags::getObjectTag($this->owner, $this->owner->getPrimaryKey())]);
     return true;
 }