diff options
author | Robin Appelman <icewind@owncloud.com> | 2014-12-08 18:01:00 +0100 |
---|---|---|
committer | Robin Appelman <icewind@owncloud.com> | 2014-12-09 17:26:53 +0100 |
commit | b66c0a1631eeea2ac252880ed65e277120fa6655 (patch) | |
tree | 52f6ed147a0f2bc9c77b095ee32e1e1b3ff878e5 | |
parent | 778d8dbafd982a018c7425f660f59c7ecaa97d2b (diff) | |
download | nextcloud-server-b66c0a1631eeea2ac252880ed65e277120fa6655.tar.gz nextcloud-server-b66c0a1631eeea2ac252880ed65e277120fa6655.zip |
add unit tests for tableExists and dropTable
-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'); + } +} |