server/tests/lib/db/mdb2schemamanager.php
Vincent Petry 04c982a96e Fix unit test messing up the transaction on Oracle
Since the unit test is skipped anyway for Oracle, the dropTable() call
should be skipped as well to avoid having a leftover transaction and
cause further transactions to be nested and break the next test suites
requiring transactions.
2014-08-20 23:14:06 +02:00

42 lines
1.4 KiB
PHP

<?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\DB;
class MDB2SchemaManager extends \PHPUnit_Framework_TestCase {
public function tearDown() {
// do not drop the table for Oracle as it will create a bogus transaction
// that will break the following test suites requiring transactions
if (\OC::$server->getConfig()->getSystemValue('dbtype', 'sqlite') === 'oci') {
return;
}
\OC_DB::dropTable('table');
}
public function testAutoIncrement() {
if (\OC::$server->getConfig()->getSystemValue('dbtype', 'sqlite') === 'oci') {
$this->markTestSkipped('Adding auto increment columns in Oracle is not supported.');
}
$connection = \OC_DB::getConnection();
$manager = new \OC\DB\MDB2SchemaManager($connection);
$manager->createDbFromStructure(__DIR__ . '/ts-autoincrement-before.xml');
$connection->executeUpdate('insert into `*PREFIX*table` values (?)', array('abc'));
$connection->executeUpdate('insert into `*PREFIX*table` values (?)', array('abc'));
$connection->executeUpdate('insert into `*PREFIX*table` values (?)', array('123'));
$connection->executeUpdate('insert into `*PREFIX*table` values (?)', array('123'));
$manager->updateDbFromStructure(__DIR__ . '/ts-autoincrement-after.xml');
$this->assertTrue(true);
}
}