diff --git a/tests/lib/db.php b/tests/lib/db.php index 056ce535436fee59ace0dbc087734982142ecf2a..1fb384ca9c617b1d840fc5689576a19f32fa9370 100644 --- a/tests/lib/db.php +++ b/tests/lib/db.php @@ -217,6 +217,38 @@ class Test_DB extends \Test\TestCase { $this->assertEquals(0, $result); } + public function insertIfNotExistsViolatingThrows() { + return [ + [null], + [['etag']], + ]; + } + + /** + * @dataProvider insertIfNotExistsViolatingThrows + * @expectedException \Doctrine\DBAL\Exception\UniqueConstraintViolationException + * + * @param array $compareKeys + */ + public function testInsertIfNotExistsViolatingThrows($compareKeys) { + $result = \OCP\DB::insertIfNotExist('*PREFIX*'.$this->table5, + array( + 'storage' => 1, + 'path_hash' => md5('welcome.txt'), + 'etag' => $this->getUniqueID() + )); + $this->assertEquals(1, $result); + + $result = \OCP\DB::insertIfNotExist('*PREFIX*'.$this->table5, + array( + 'storage' => 1, + 'path_hash' => md5('welcome.txt'), + 'etag' => $this->getUniqueID() + ), $compareKeys); + + $this->assertEquals(0, $result); + } + public function testUtf8Data() { $table = "*PREFIX*{$this->table2}"; $expected = "ะรถ้ๅ\xE2\x80\xA2";