mirror of
https://github.com/yiisoft/yii2.git
synced 2025-08-26 06:15:19 +08:00
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:
@ -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));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user