aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilipp Schaffrath <github@philipp.schaffrath.email>2017-01-10 12:10:36 +0100
committerMorris Jobke <hey@morrisjobke.de>2017-03-17 00:09:07 -0600
commit2ccf544ad7c8bfc54600adb065156f04a8912c9f (patch)
tree02e8efd96ba96be842ec092bbfa2c80c9873ec7f
parent39afcbd49feb4ba333746762fe7c9d4701db9860 (diff)
downloadnextcloud-server-2ccf544ad7c8bfc54600adb065156f04a8912c9f.tar.gz
nextcloud-server-2ccf544ad7c8bfc54600adb065156f04a8912c9f.zip
Fixed failing test which was ignoring a required (not null) column (#26303)
* Fixed failing test which was ignoring a required (not null) column * restored test to original, catching DriverException which also catches ConstraintViolationException * catch ConstraintViolationException again * removed unnecessary field from this test * clobfield should be nullable * clobfield now is nullable * removed autoincrement since whenever this strategy is enabled, oracle would not throw constraint violation exceptions (needed for setValues), which mysql still does * this field does not auto increment anymore * mark integerfield as primary, since it is not getting marked as such through auto increment anymore, integerfield default always has been 0 instead of null Signed-off-by: Morris Jobke <hey@morrisjobke.de>
-rw-r--r--lib/private/DB/Connection.php3
-rw-r--r--tests/lib/DB/ConnectionTest.php3
-rw-r--r--tests/lib/DB/MDB2SchemaReaderTest.php6
-rw-r--r--tests/lib/DB/testschema.xml3
4 files changed, 7 insertions, 8 deletions
diff --git a/lib/private/DB/Connection.php b/lib/private/DB/Connection.php
index a39dbe3783c..4b1c560c5ca 100644
--- a/lib/private/DB/Connection.php
+++ b/lib/private/DB/Connection.php
@@ -34,6 +34,7 @@ use Doctrine\DBAL\Configuration;
use Doctrine\DBAL\Cache\QueryCacheProfile;
use Doctrine\Common\EventManager;
use Doctrine\DBAL\Platforms\MySqlPlatform;
+use Doctrine\DBAL\Exception\ConstraintViolationException;
use OC\DB\QueryBuilder\QueryBuilder;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\IDBConnection;
@@ -284,7 +285,7 @@ class Connection extends \Doctrine\DBAL\Connection implements IDBConnection {
}, array_merge($keys, $values))
);
return $insertQb->execute();
- } catch (\Doctrine\DBAL\Exception\ConstraintViolationException $e) {
+ } catch (ConstraintViolationException $e) {
// value already exists, try update
$updateQb = $this->getQueryBuilder();
$updateQb->update($table);
diff --git a/tests/lib/DB/ConnectionTest.php b/tests/lib/DB/ConnectionTest.php
index b9c55c23339..2a0cd70f83a 100644
--- a/tests/lib/DB/ConnectionTest.php
+++ b/tests/lib/DB/ConnectionTest.php
@@ -124,8 +124,7 @@ class ConnectionTest extends \Test\TestCase {
$this->connection->setValues('table', [
'integerfield' => 1
], [
- 'textfield' => 'foo',
- 'clobfield' => 'not_null'
+ 'textfield' => 'foo'
]);
$this->connection->setValues('table', [
diff --git a/tests/lib/DB/MDB2SchemaReaderTest.php b/tests/lib/DB/MDB2SchemaReaderTest.php
index 22c0ba28569..c740eb97f4b 100644
--- a/tests/lib/DB/MDB2SchemaReaderTest.php
+++ b/tests/lib/DB/MDB2SchemaReaderTest.php
@@ -42,8 +42,8 @@ class MDB2SchemaReaderTest extends \Test\TestCase {
$this->assertCount(8, $table->getColumns());
$this->assertEquals(4, $table->getColumn('integerfield')->getLength());
- $this->assertTrue($table->getColumn('integerfield')->getAutoincrement());
- $this->assertNull($table->getColumn('integerfield')->getDefault());
+ $this->assertFalse($table->getColumn('integerfield')->getAutoincrement());
+ $this->assertEquals(0, $table->getColumn('integerfield')->getDefault());
$this->assertTrue($table->getColumn('integerfield')->getNotnull());
$this->assertInstanceOf('Doctrine\DBAL\Types\IntegerType', $table->getColumn('integerfield')->getType());
@@ -58,7 +58,7 @@ class MDB2SchemaReaderTest extends \Test\TestCase {
$this->assertNull($table->getColumn('clobfield')->getLength());
$this->assertFalse($table->getColumn('clobfield')->getAutoincrement());
$this->assertNull($table->getColumn('clobfield')->getDefault());
- $this->assertTrue($table->getColumn('clobfield')->getNotnull());
+ $this->assertFalse($table->getColumn('clobfield')->getNotnull());
$this->assertInstanceOf('Doctrine\DBAL\Types\TextType', $table->getColumn('clobfield')->getType());
$this->assertNull($table->getColumn('booleanfield')->getLength());
diff --git a/tests/lib/DB/testschema.xml b/tests/lib/DB/testschema.xml
index dfca920a0ef..8e6dc1a1d60 100644
--- a/tests/lib/DB/testschema.xml
+++ b/tests/lib/DB/testschema.xml
@@ -17,7 +17,7 @@
<type>integer</type>
<default>0</default>
<notnull>true</notnull>
- <autoincrement>1</autoincrement>
+ <primary>true</primary>
<length>4</length>
</field>
<field>
@@ -37,7 +37,6 @@
<field>
<name>clobfield</name>
<type>clob</type>
- <notnull>true</notnull>
</field>
<field>
<name>booleanfield</name>