From 5aab98c4bf1904f9886c4fe091546f9edab1fb4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BCller?= Date: Thu, 23 Oct 2014 14:32:37 +0200 Subject: [PATCH] disable database migration unit tests for MSSQL --- tests/lib/db/mdb2schemamanager.php | 10 ++++++++-- tests/lib/db/migrator.php | 11 ++++++++--- tests/lib/dbschema.php | 14 +++++++++++--- 3 files changed, 27 insertions(+), 8 deletions(-) diff --git a/tests/lib/db/mdb2schemamanager.php b/tests/lib/db/mdb2schemamanager.php index dd9ee3adb8..527b2cba64 100644 --- a/tests/lib/db/mdb2schemamanager.php +++ b/tests/lib/db/mdb2schemamanager.php @@ -9,6 +9,9 @@ namespace Test\DB; +use Doctrine\DBAL\Platforms\OraclePlatform; +use Doctrine\DBAL\Platforms\SQLServerPlatform; + class MDB2SchemaManager extends \PHPUnit_Framework_TestCase { public function tearDown() { @@ -22,11 +25,14 @@ class MDB2SchemaManager extends \PHPUnit_Framework_TestCase { public function testAutoIncrement() { - if (\OC::$server->getConfig()->getSystemValue('dbtype', 'sqlite') === 'oci') { + $connection = \OC_DB::getConnection(); + if ($connection->getDatabasePlatform() instanceof OraclePlatform) { $this->markTestSkipped('Adding auto increment columns in Oracle is not supported.'); } + if ($connection->getDatabasePlatform() instanceof SQLServerPlatform) { + $this->markTestSkipped('DB migration tests are not supported on MSSQL'); + } - $connection = \OC_DB::getConnection(); $manager = new \OC\DB\MDB2SchemaManager($connection); $manager->createDbFromStructure(__DIR__ . '/ts-autoincrement-before.xml'); diff --git a/tests/lib/db/migrator.php b/tests/lib/db/migrator.php index 2e49086bd6..09742a53eb 100644 --- a/tests/lib/db/migrator.php +++ b/tests/lib/db/migrator.php @@ -10,6 +10,8 @@ namespace Test\DB; use \Doctrine\DBAL\DBALException; +use Doctrine\DBAL\Platforms\OraclePlatform; +use Doctrine\DBAL\Platforms\SQLServerPlatform; use \Doctrine\DBAL\Schema\Schema; use \Doctrine\DBAL\Schema\SchemaConfig; @@ -28,8 +30,11 @@ class Migrator extends \PHPUnit_Framework_TestCase { public function setUp() { $this->connection = \OC_DB::getConnection(); - if ($this->connection->getDriver() instanceof \Doctrine\DBAL\Driver\OCI8\Driver) { - $this->markTestSkipped('DB migration tests arent supported on OCI'); + if ($this->connection->getDatabasePlatform() instanceof OraclePlatform) { + $this->markTestSkipped('DB migration tests are not supported on OCI'); + } + if ($this->connection->getDatabasePlatform() instanceof SQLServerPlatform) { + $this->markTestSkipped('DB migration tests are not supported on MSSQL'); } $this->manager = new \OC\DB\MDB2SchemaManager($this->connection); $this->tableName = 'test_' . uniqid(); @@ -73,7 +78,7 @@ class Migrator extends \PHPUnit_Framework_TestCase { */ public function testDuplicateKeyUpgrade() { if ($this->isSQLite()) { - $this->markTestSkipped('sqlite doesnt throw errors when creating a new key on existing data'); + $this->markTestSkipped('sqlite does not throw errors when creating a new key on existing data'); } list($startSchema, $endSchema) = $this->getDuplicateKeySchemas(); $migrator = $this->manager->getMigrator(); diff --git a/tests/lib/dbschema.php b/tests/lib/dbschema.php index c07e32a404..d31bd34124 100644 --- a/tests/lib/dbschema.php +++ b/tests/lib/dbschema.php @@ -1,4 +1,5 @@ * This file is licensed under the Affero General Public License version 3 or @@ -6,6 +7,8 @@ * See the COPYING-README file. */ +use OCP\Security\ISecureRandom; + class Test_DBSchema extends PHPUnit_Framework_TestCase { protected $schema_file = 'static://test_db_scheme'; protected $schema_file2 = 'static://test_db_scheme2'; @@ -16,7 +19,8 @@ class Test_DBSchema extends PHPUnit_Framework_TestCase { $dbfile = OC::$SERVERROOT.'/tests/data/db_structure.xml'; $dbfile2 = OC::$SERVERROOT.'/tests/data/db_structure2.xml'; - $r = '_'.OC_Util::generateRandomBytes(4).'_'; + $r = '_' . \OC::$server->getSecureRandom()->getMediumStrengthGenerator()-> + generate(4, ISecureRandom::CHAR_LOWER . ISecureRandom::CHAR_DIGITS) . '_'; $content = file_get_contents( $dbfile ); $content = str_replace( '*dbprefix*', '*dbprefix*'.$r, $content ); file_put_contents( $this->schema_file, $content ); @@ -38,6 +42,10 @@ class Test_DBSchema extends PHPUnit_Framework_TestCase { * @medium */ public function testSchema() { + $platform = \OC_DB::getConnection()->getDatabasePlatform(); + if ($platform instanceof \Doctrine\DBAL\Platforms\SQLServerPlatform) { + $this->markTestSkipped("Test not relevant on MSSQL"); + } $this->doTestSchemaCreating(); $this->doTestSchemaChanging(); $this->doTestSchemaDumping(); @@ -80,8 +88,8 @@ class Test_DBSchema extends PHPUnit_Framework_TestCase { * @param string $table */ public function assertTableNotExist($table) { - $type=OC_Config::getValue( "dbtype", "sqlite" ); - if( $type == 'sqlite' || $type == 'sqlite3' ) { + $platform = \OC_DB::getConnection()->getDatabasePlatform(); + if ($platform instanceof \Doctrine\DBAL\Platforms\SqlitePlatform) { // sqlite removes the tables after closing the DB $this->assertTrue(true); } else {