diff options
author | Morris Jobke <hey@morrisjobke.de> | 2014-12-09 18:40:56 +0100 |
---|---|---|
committer | Morris Jobke <hey@morrisjobke.de> | 2014-12-09 18:40:56 +0100 |
commit | 263e008d7b0df17071a9d8ef915586d0cb5abab3 (patch) | |
tree | ddac2505e3c55a36f5a3917355933cb175cca1f4 /tests | |
parent | d4b3c50f7d14877cbf0bf9fd87807181e51ce93b (diff) | |
parent | 6984fa8a19f09fe8e3c9ac8c48225dd40b1cc94c (diff) | |
download | nextcloud-server-263e008d7b0df17071a9d8ef915586d0cb5abab3.tar.gz nextcloud-server-263e008d7b0df17071a9d8ef915586d0cb5abab3.zip |
Merge pull request #12695 from owncloud/db-drop-table
Add dropTable to IDBConnection
Diffstat (limited to 'tests')
-rw-r--r-- | tests/lib/db/connection.php | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/tests/lib/db/connection.php b/tests/lib/db/connection.php new file mode 100644 index 00000000000..070c75db55d --- /dev/null +++ b/tests/lib/db/connection.php @@ -0,0 +1,69 @@ +<?php + +/** + * Copyright (c) 2014 Robin Appelman <icewind@owncloud.com> + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace Test\DB; + +use Doctrine\DBAL\Platforms\SqlitePlatform; +use OC\DB\MDB2SchemaManager; + +class Connection extends \Test\TestCase { + /** + * @var \OCP\IDBConnection + */ + private $connection; + + public function setUp() { + parent::setUp(); + $this->connection = \OC::$server->getDatabaseConnection(); + } + + /** + * @param string $table + */ + public function assertTableExist($table) { + if ($this->connection->getDatabasePlatform() instanceof SqlitePlatform) { + // sqlite removes the tables after closing the DB + $this->assertTrue(true); + } else { + $this->assertTrue($this->connection->tableExists($table), 'Table ' . $table . ' exists.'); + } + } + + /** + * @param string $table + */ + public function assertTableNotExist($table) { + if ($this->connection->getDatabasePlatform() instanceof SqlitePlatform) { + // sqlite removes the tables after closing the DB + $this->assertTrue(true); + } else { + $this->assertFalse($this->connection->tableExists($table), 'Table ' . $table . ' doesnt exists.'); + } + } + + private function makeTestTable() { + $schemaManager = new MDB2SchemaManager($this->connection); + $schemaManager->createDbFromStructure(__DIR__ . '/testschema.xml'); + } + + public function testTableExists() { + $this->assertTableNotExist('table'); + $this->makeTestTable(); + $this->assertTableExist('table'); + } + + /** + * @depends testTableExists + */ + public function testDropTable() { + $this->assertTableExist('table'); + $this->connection->dropTable('table'); + $this->assertTableNotExist('table'); + } +} |