Files
piratepoet/tests/unit/Config/DatabaseTest.php
Vlad f734d47b26 - Extracts database configuration into a separate class
- Conditionally sets the session wait_timeout value
- Updates unit tests
2017-01-17 11:23:00 -05:00

54 lines
1.4 KiB
PHP

<?php
use MailPoet\Config\Database;
use MailPoet\Config\Env;
class DatabaseTestTest extends MailPoetTest {
public $database;
function __construct() {
$this->database = new Database();
}
function _before() {
\ORM::set_db(null);
}
function testItDefinesTables() {
expect(defined('MP_SETTINGS_TABLE'))->true();
}
function testItConfiguresLogging() {
expect(\ORM::get_config('logging'))->equals(WP_DEBUG);
}
function testItSetsUpConnection() {
expect(\ORM::get_config('username'))->equals(Env::$db_username);
expect(\ORM::get_config('password'))->equals(Env::$db_password);
}
function testItSelectivelyUpdatesDriverTimeoutOption() {
$database = $this->database;
$database->driver_option_wait_timeout = 99999;
$database->setupDriverOptions();
$result = ORM::for_table("")
->raw_query('SELECT @@session.wait_timeout as wait_timeout')
->findOne();
expect($result->wait_timeout)->equals(99999);
}
function testItSetsDBDriverOptions() {
$this->database->init();
$result = ORM::for_table("")
->raw_query(
'SELECT ' .
'@@sql_mode as sql_mode, ' .
'@@session.time_zone as time_zone'
)
->findOne();
// disable ONLY_FULL_GROUP_BY
expect($result->sql_mode)->notContains('ONLY_FULL_GROUP_BY');
// time zone should be set based on WP's time zone
expect($result->time_zone)->equals(Env::$db_timezone_offset);
}
}