1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- <?php
- /**
- * Copyright (c) 2014 Thomas Müller <deepdiver@owncloud.com>
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- * See the COPYING-README file.
- */
- namespace Test\Repair;
- /**
- * Tests for the converting of MySQL tables to InnoDB engine
- *
- * @group DB
- *
- * @see \OC\Repair\RepairMimeTypes
- */
- class RepairInnoDB extends \Test\TestCase {
- /** @var \OC\RepairStep */
- private $repair;
- /** @var \Doctrine\DBAL\Connection */
- private $connection;
- /** @var string */
- private $tableName;
- protected function setUp() {
- parent::setUp();
- $this->connection = \OC::$server->getDatabaseConnection();
- if (!$this->connection->getDatabasePlatform() instanceof \Doctrine\DBAL\Platforms\MySqlPlatform) {
- $this->markTestSkipped("Test only relevant on MySql");
- }
- $dbPrefix = \OC::$server->getConfig()->getSystemValue("dbtableprefix");
- $this->tableName = $this->getUniqueID($dbPrefix . "_innodb_test");
- $this->connection->exec("CREATE TABLE $this->tableName(id INT) ENGINE MyISAM");
- $this->repair = new \OC\Repair\InnoDB();
- }
- protected function tearDown() {
- $this->connection->getSchemaManager()->dropTable($this->tableName);
- parent::tearDown();
- }
- public function testInnoDBConvert() {
- $result = $this->countMyIsamTables();
- $this->assertEquals(1, $result);
- $this->repair->run();
- $result = $this->countMyIsamTables();
- $this->assertEquals(0, $result);
- }
- /**
- * @param $dbName
- * @return mixed
- */
- private function countMyIsamTables() {
- $dbName = \OC::$server->getConfig()->getSystemValue("dbname");
- $result = $this->connection->fetchColumn(
- "SELECT count(*) FROM information_schema.tables WHERE table_schema = ? and table_name = ? AND engine = 'MyISAM'",
- array($dbName, $this->tableName)
- );
- return $result;
- }
- }
|