Skip to content
Snippets Groups Projects
Commit 50101a85 authored by Morris Jobke's avatar Morris Jobke
Browse files

Merge pull request #3982 from owncloud/test_lastinsertid

test lastinsertid
parents 761f4032 b8bd1e5a
No related branches found
No related tags found
No related merge requests found
...@@ -344,7 +344,7 @@ class OC_DB { ...@@ -344,7 +344,7 @@ class OC_DB {
$result = self::executeAudited('SELECT lastval() AS id'); $result = self::executeAudited('SELECT lastval() AS id');
$row = $result->fetchRow(); $row = $result->fetchRow();
self::raiseExceptionOnError($row, 'fetching row for insertid failed'); self::raiseExceptionOnError($row, 'fetching row for insertid failed');
return $row['id']; return (int)$row['id'];
} else if( $type === 'mssql') { } else if( $type === 'mssql') {
if($table !== null) { if($table !== null) {
$prefix = OC_Config::getValue( "dbtableprefix", "oc_" ); $prefix = OC_Config::getValue( "dbtableprefix", "oc_" );
...@@ -368,7 +368,7 @@ class OC_DB { ...@@ -368,7 +368,7 @@ class OC_DB {
$result = self::$connection->lastInsertId($table); $result = self::$connection->lastInsertId($table);
} }
self::raiseExceptionOnError($result, 'insertid failed'); self::raiseExceptionOnError($result, 'insertid failed');
return $result; return (int)$result;
} }
/** /**
......
...@@ -71,7 +71,21 @@ class Test_DB extends PHPUnit_Framework_TestCase { ...@@ -71,7 +71,21 @@ class Test_DB extends PHPUnit_Framework_TestCase {
$result = $query->execute(array('uri_3')); $result = $query->execute(array('uri_3'));
$this->assertTrue((bool)$result); $this->assertTrue((bool)$result);
} }
public function testLastInsertId() {
$query = OC_DB::prepare('INSERT INTO `*PREFIX*'.$this->table2.'` (`fullname`,`uri`) VALUES (?,?)');
$result1 = OC_DB::executeAudited($query, array('insertid 1','uri_1'));
$id1 = OC_DB::insertid('*PREFIX*'.$this->table2);
$this->assertInternalType('int', $id1);
// we don't know the id we should expect, so insert another row
$result2 = OC_DB::executeAudited($query, array('insertid 2','uri_2'));
$id2 = OC_DB::insertid('*PREFIX*'.$this->table2);
// now we can check if the two ids are in correct order
$this->assertInternalType('int', $id2);
$this->assertGreaterThan($id1, $id2);
}
public function testinsertIfNotExist() { public function testinsertIfNotExist() {
$categoryentries = array( $categoryentries = array(
array('user' => 'test', 'type' => 'contact', 'category' => 'Family', 'expectedResult' => 1), array('user' => 'test', 'type' => 'contact', 'category' => 'Family', 'expectedResult' => 1),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment