tests: configure unit tests to run on MSSQL [odbc/dblib]

This commit is contained in:
Joe Nahmias 2022-10-21 11:50:18 -04:00 committed by Frédéric Guillot
parent 33852e9ea0
commit ab353a3d8f
2 changed files with 30 additions and 0 deletions

7
tests/units.mssql.xml Normal file
View File

@ -0,0 +1,7 @@
<phpunit stopOnError="false" stopOnFailure="false" colors="true">
<testsuites>
<testsuite name="Kanboard">
<directory>units</directory>
</testsuite>
</testsuites>
</phpunit>

View File

@ -36,6 +36,29 @@ abstract class Base extends PHPUnit\Framework\TestCase
$pdo->exec('DROP DATABASE '.DB_NAME);
$pdo->exec('CREATE DATABASE '.DB_NAME.' WITH OWNER '.DB_USERNAME);
$pdo = null;
} elseif (DB_DRIVER === 'dblib') {
$dsn = 'dblib:host='.DB_HOSTNAME;
if (! empty(DB_PORT) ) { $dsn .= ','.DB_PORT; }
$dsn .= ";dbname=master;appname=Kanboard Unit Tests [$test]";
$pdo = new PDO($dsn, DB_USERNAME, DB_PASSWORD);
$pdo->exec('use master;');
$pdo->exec('DROP DATABASE IF EXISTS ['.DB_NAME.'];');
$pdo->exec('CREATE DATABASE ['.DB_NAME.'];');
$pdo->exec('ALTER DATABASE ['.DB_NAME.'] SET ALLOW_SNAPSHOT_ISOLATION ON;');
$pdo->exec('ALTER DATABASE ['.DB_NAME.'] SET READ_COMMITTED_SNAPSHOT ON;');
$pdo->exec('ALTER DATABASE ['.DB_NAME.'] SET ANSI_NULL_DEFAULT ON;');
$pdo->exec('USE ['.DB_NAME.'];');
$pdo = null;
} elseif (DB_DRIVER === 'odbc') {
$pdo = new PDO('odbc:'.DB_ODBC_DSN, DB_USERNAME, DB_PASSWORD);
$pdo->exec('use master;');
$pdo->exec('DROP DATABASE IF EXISTS ['.DB_NAME.'];');
$pdo->exec('CREATE DATABASE ['.DB_NAME.'];');
$pdo->exec('ALTER DATABASE ['.DB_NAME.'] SET ALLOW_SNAPSHOT_ISOLATION ON;');
$pdo->exec('ALTER DATABASE ['.DB_NAME.'] SET READ_COMMITTED_SNAPSHOT ON;');
$pdo->exec('ALTER DATABASE ['.DB_NAME.'] SET ANSI_NULL_DEFAULT ON;');
$pdo->exec('USE ['.DB_NAME.'];');
$pdo = null;
}
$this->container = new Pimple\Container;