mirror of
https://github.com/yiisoft/yii2.git
synced 2025-08-18 01:07:37 +08:00

* 'unittest-app-dependency' of https://github.com/bwoester/yii2: mod: incorporate suggestions - rename requireApp() to mockApplication() - always destroy app on tearDown() - eliminates need for constant YII_DESTROY_APP_ON_TEARDOWN - mockApplication() becomes a lot easier. Destroying app on each tearDown means creating it on every call is fine. No more checking if it already exists and if it has been created from the same config. - \yii::$app should have been \Yii::$app add: new key for unit tests config named "className". Allows to run the tests using different Application instances (consoleApp/ webApp) mod: TestCase::getParam accepts second param $default=null mod: don't create app in bootstrap script, unit tests do it themselves add: option to destroy app after each test to find unit tests that fail to require an app allow unit tests to requireApp() on setUp() Conflicts: tests/unit/data/config.php
74 lines
1.6 KiB
PHP
74 lines
1.6 KiB
PHP
<?php
|
|
namespace yiiunit\framework\caching;
|
|
use yii\caching\DbCache;
|
|
use yiiunit\TestCase;
|
|
|
|
/**
|
|
* Class for testing file cache backend
|
|
*/
|
|
class DbCacheTest extends CacheTest
|
|
{
|
|
private $_cacheInstance;
|
|
private $_connection;
|
|
|
|
protected function setUp()
|
|
{
|
|
if (!extension_loaded('pdo') || !extension_loaded('pdo_mysql')) {
|
|
$this->markTestSkipped('pdo and pdo_mysql extensions are required.');
|
|
}
|
|
|
|
parent::setUp();
|
|
|
|
$this->getConnection()->createCommand("
|
|
CREATE TABLE IF NOT EXISTS tbl_cache (
|
|
id char(128) NOT NULL,
|
|
expire int(11) DEFAULT NULL,
|
|
data LONGBLOB,
|
|
PRIMARY KEY (id),
|
|
KEY expire (expire)
|
|
);
|
|
")->execute();
|
|
}
|
|
|
|
/**
|
|
* @param bool $reset whether to clean up the test database
|
|
* @return \yii\db\Connection
|
|
*/
|
|
function getConnection($reset = true)
|
|
{
|
|
if ($this->_connection === null) {
|
|
$databases = $this->getParam('databases');
|
|
$params = $databases['mysql'];
|
|
$db = new \yii\db\Connection;
|
|
$db->dsn = $params['dsn'];
|
|
$db->username = $params['username'];
|
|
$db->password = $params['password'];
|
|
if ($reset) {
|
|
$db->open();
|
|
$lines = explode(';', file_get_contents($params['fixture']));
|
|
foreach ($lines as $line) {
|
|
if (trim($line) !== '') {
|
|
$db->pdo->exec($line);
|
|
}
|
|
}
|
|
}
|
|
$this->_connection = $db;
|
|
}
|
|
return $this->_connection;
|
|
}
|
|
|
|
|
|
/**
|
|
* @return DbCache
|
|
*/
|
|
protected function getCacheInstance()
|
|
{
|
|
if ($this->_cacheInstance === null) {
|
|
$this->_cacheInstance = new DbCache(array(
|
|
'db' => $this->getConnection(),
|
|
));
|
|
}
|
|
return $this->_cacheInstance;
|
|
}
|
|
}
|