You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.3 KiB
54 lines
1.3 KiB
<?php |
|
|
|
namespace yiiunit\framework\caching; |
|
|
|
use yii\caching\ArrayCache; |
|
use yii\caching\DbDependency; |
|
use yiiunit\framework\db\DatabaseTestCase; |
|
|
|
/** |
|
* @group caching |
|
*/ |
|
class DbDependencyTest extends DatabaseTestCase |
|
{ |
|
/** |
|
* @inheritdoc |
|
*/ |
|
protected $driverName = 'sqlite'; |
|
|
|
|
|
/** |
|
* @inheritdoc |
|
*/ |
|
protected function setUp() |
|
{ |
|
parent::setUp(); |
|
|
|
$db = $this->getConnection(false); |
|
|
|
$db->createCommand()->createTable('dependency_item', [ |
|
'id' => 'pk', |
|
'value' => 'string', |
|
])->execute(); |
|
|
|
$db->createCommand()->insert('dependency_item', ['value' => 'initial'])->execute(); |
|
} |
|
|
|
public function testIsChanged() |
|
{ |
|
$db = $this->getConnection(false); |
|
$cache = new ArrayCache(); |
|
|
|
$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)); |
|
} |
|
} |