Fix yii\caching\Dependency::generateReusableHash() (#19303)

* Fix yii\caching\Dependency::generateReusableHash()

* Update DbQueryDependencyTest.php

* Update CHANGELOG.md

* Update Dependency.php

* Update framework/caching/Dependency.php

Co-authored-by: Bizley <pawel@positive.codes>

* Update comment Dependency::generateReusableHash()

Co-authored-by: Bizley <pawel@positive.codes>
This commit is contained in:
Anton
2022-03-29 09:22:34 +03:00
committed by GitHub
parent 2874e070f3
commit 091b055ce9
3 changed files with 44 additions and 5 deletions

View File

@ -108,4 +108,30 @@ class DbQueryDependencyTest extends DatabaseTestCase
$this->assertTrue($dependency->isChanged($cache));
}
/**
* @depends testCustomMethod
*/
public function testReusableAndCustomMethodCallback()
{
$db = $this->getConnection(false);
$cache = new ArrayCache();
$dependency = new DbQueryDependency();
$dependency->db = $db;
$dependency->query = (new Query())
->from('dependency_item')
->andWhere(['value' => 'not exist']);
$dependency->reusable = true;
$dependency->method = function (Query $query, $db) {
return $query->orWhere(['value' => 'initial'])->exists($db);
};
$dependency->evaluateDependency($cache);
$this->assertFalse($dependency->isChanged($cache));
$db->createCommand()->delete('dependency_item')->execute();
$this->assertTrue($dependency->isChanged($cache));
}
}