@@ -21,7 +21,6 @@ class DbDependencyTest extends DatabaseTestCase
21
21
*/
22
22
protected $ driverName = 'sqlite ' ;
23
23
24
-
25
24
/**
26
25
* {@inheritdoc}
27
26
*/
@@ -39,11 +38,14 @@ protected function setUp()
39
38
$ db ->createCommand ()->insert ('dependency_item ' , ['value ' => 'initial ' ])->execute ();
40
39
}
41
40
42
- public function testIsChanged ()
41
+ public function testQueryOneIsExecutedWhenQueryCacheEnabled ()
43
42
{
44
43
$ db = $ this ->getConnection (false );
45
44
$ cache = new ArrayCache ();
46
45
46
+ // Enable the query cache
47
+ $ db ->enableQueryCache = true ;
48
+
47
49
$ dependency = new DbDependency ();
48
50
$ dependency ->db = $ db ;
49
51
$ dependency ->sql = 'SELECT [[id]] FROM {{dependency_item}} ORDER BY [[id]] DESC LIMIT 1 ' ;
@@ -56,4 +58,39 @@ public function testIsChanged()
56
58
57
59
$ this ->assertTrue ($ dependency ->isChanged ($ cache ));
58
60
}
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
+ }
59
96
}
0 commit comments