diff options
author | Vincent Petry <pvince81@owncloud.com> | 2015-05-18 16:57:59 +0200 |
---|---|---|
committer | Vincent Petry <pvince81@owncloud.com> | 2015-05-19 10:44:23 +0200 |
commit | 80afbd3e4f2a0bcb635e1a6baf0fb3febc7cec51 (patch) | |
tree | 674bf5cde7a5dc3bc8e264dfe346bc7064f7cf1a | |
parent | 524045cdbdbbf37e173b81a7556176749ace0de2 (diff) | |
download | nextcloud-server-80afbd3e4f2a0bcb635e1a6baf0fb3febc7cec51.tar.gz nextcloud-server-80afbd3e4f2a0bcb635e1a6baf0fb3febc7cec51.zip |
Add unit test for migrator with different prefix
-rw-r--r-- | tests/lib/db/migrator.php | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/tests/lib/db/migrator.php b/tests/lib/db/migrator.php index 54267740480..6bde68c2d20 100644 --- a/tests/lib/db/migrator.php +++ b/tests/lib/db/migrator.php @@ -26,11 +26,17 @@ class Migrator extends \Test\TestCase { */ private $manager; + /** + * @var IConfig + **/ + private $config; + private $tableName; protected function setUp() { parent::setUp(); + $this->config = \OC::$server->getConfig(); $this->connection = \OC_DB::getConnection(); if ($this->connection->getDatabasePlatform() instanceof OraclePlatform) { $this->markTestSkipped('DB migration tests are not supported on OCI'); @@ -39,7 +45,7 @@ class Migrator extends \Test\TestCase { $this->markTestSkipped('DB migration tests are not supported on MSSQL'); } $this->manager = new \OC\DB\MDB2SchemaManager($this->connection); - $this->tableName = strtolower($this->getUniqueID('oc_test_')); + $this->tableName = strtolower($this->getUniqueID($this->config->getSystemValue('dbtableprefix', 'oc_') . 'test_')); } protected function tearDown() { @@ -109,6 +115,27 @@ class Migrator extends \Test\TestCase { $this->assertTrue(true); } + public function testUpgradeDifferentPrefix() { + $oldTablePrefix = $this->config->getSystemValue('dbtableprefix', 'oc_'); + + $this->config->setSystemValue('dbtableprefix', 'ownc_'); + $this->tableName = strtolower($this->getUniqueID($this->config->getSystemValue('dbtableprefix') . 'test_')); + + list($startSchema, $endSchema) = $this->getDuplicateKeySchemas(); + $migrator = $this->manager->getMigrator(); + $migrator->migrate($startSchema); + + $this->connection->insert($this->tableName, array('id' => 1, 'name' => 'foo')); + $this->connection->insert($this->tableName, array('id' => 2, 'name' => 'bar')); + $this->connection->insert($this->tableName, array('id' => 3, 'name' => 'qwerty')); + + $migrator->checkMigrate($endSchema); + $migrator->migrate($endSchema); + $this->assertTrue(true); + + $this->config->setSystemValue('dbtableprefix', $oldTablePrefix); + } + public function testInsertAfterUpgrade() { list($startSchema, $endSchema) = $this->getDuplicateKeySchemas(); $migrator = $this->manager->getMigrator(); |