mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-01 20:19:42 +08:00
Add tests for uncovered lines in DbDependency (#20052)
This commit is contained in:
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user