Skip to content

Commit bd452da

Browse files
Add tests for uncovered lines in DbDependency (#20052)
1 parent cb8307f commit bd452da

File tree

1 file changed

+39
-2
lines changed

1 file changed

+39
-2
lines changed

tests/framework/caching/DbDependencyTest.php

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ class DbDependencyTest extends DatabaseTestCase
2121
*/
2222
protected $driverName = 'sqlite';
2323

24-
2524
/**
2625
* {@inheritdoc}
2726
*/
@@ -39,11 +38,14 @@ protected function setUp()
3938
$db->createCommand()->insert('dependency_item', ['value' => 'initial'])->execute();
4039
}
4140

42-
public function testIsChanged()
41+
public function testQueryOneIsExecutedWhenQueryCacheEnabled()
4342
{
4443
$db = $this->getConnection(false);
4544
$cache = new ArrayCache();
4645

46+
// Enable the query cache
47+
$db->enableQueryCache = true;
48+
4749
$dependency = new DbDependency();
4850
$dependency->db = $db;
4951
$dependency->sql = 'SELECT [[id]] FROM {{dependency_item}} ORDER BY [[id]] DESC LIMIT 1';
@@ -56,4 +58,39 @@ public function testIsChanged()
5658

5759
$this->assertTrue($dependency->isChanged($cache));
5860
}
61+
62+
public function testQueryOneIsExecutedWhenQueryCacheDisabled()
63+
{
64+
$db = $this->getConnection(false);
65+
$cache = new ArrayCache();
66+
67+
// Disable the query cache
68+
$db->enableQueryCache = false;
69+
70+
$dependency = new DbDependency();
71+
$dependency->db = $db;
72+
$dependency->sql = 'SELECT [[id]] FROM {{dependency_item}} ORDER BY [[id]] DESC LIMIT 1';
73+
$dependency->reusable = false;
74+
75+
$dependency->evaluateDependency($cache);
76+
$this->assertFalse($dependency->isChanged($cache));
77+
78+
$db->createCommand()->insert('dependency_item', ['value' => 'new'])->execute();
79+
80+
$this->assertTrue($dependency->isChanged($cache));
81+
}
82+
83+
public function testMissingSqlThrowsException()
84+
{
85+
$this->expectException('\yii\base\InvalidConfigException');
86+
87+
$db = $this->getConnection(false);
88+
$cache = new ArrayCache();
89+
90+
$dependency = new DbDependency();
91+
$dependency->db = $db;
92+
$dependency->sql = null;
93+
94+
$dependency->evaluateDependency($cache);
95+
}
5996
}

0 commit comments

Comments
 (0)