Add tests for uncovered lines in DbDependency (#20052)

This commit is contained in:
Saleh Hashemi
2023-10-27 22:26:06 +03:30
committed by GitHub
parent cb8307fad9
commit bd452da4d2

View File

@ -21,7 +21,6 @@ class DbDependencyTest extends DatabaseTestCase
*/
protected $driverName = 'sqlite';
/**
* {@inheritdoc}
*/
@ -39,11 +38,14 @@ class DbDependencyTest extends DatabaseTestCase
$db->createCommand()->insert('dependency_item', ['value' => 'initial'])->execute();
}
public function testIsChanged()
public function testQueryOneIsExecutedWhenQueryCacheEnabled()
{
$db = $this->getConnection(false);
$cache = new ArrayCache();
// Enable the query cache
$db->enableQueryCache = true;
$dependency = new DbDependency();
$dependency->db = $db;
$dependency->sql = 'SELECT [[id]] FROM {{dependency_item}} ORDER BY [[id]] DESC LIMIT 1';
@ -56,4 +58,39 @@ class DbDependencyTest extends DatabaseTestCase
$this->assertTrue($dependency->isChanged($cache));
}
public function testQueryOneIsExecutedWhenQueryCacheDisabled()
{
$db = $this->getConnection(false);
$cache = new ArrayCache();
// Disable the query cache
$db->enableQueryCache = false;
$dependency = new DbDependency();
$dependency->db = $db;
$dependency->sql = 'SELECT [[id]] FROM {{dependency_item}} ORDER BY [[id]] DESC LIMIT 1';
$dependency->reusable = false;
$dependency->evaluateDependency($cache);
$this->assertFalse($dependency->isChanged($cache));
$db->createCommand()->insert('dependency_item', ['value' => 'new'])->execute();
$this->assertTrue($dependency->isChanged($cache));
}
public function testMissingSqlThrowsException()
{
$this->expectException('\yii\base\InvalidConfigException');
$db = $this->getConnection(false);
$cache = new ArrayCache();
$dependency = new DbDependency();
$dependency->db = $db;
$dependency->sql = null;
$dependency->evaluateDependency($cache);
}
}