use Wikimedia\Rdbms\ResultWrapper;
class DatabaseSqliteMock extends DatabaseSqlite {
- private $lastQuery;
-
public static function newInstance( array $p = [] ) {
$p['dbFilePath'] = ':memory:';
$p['schema'] = false;
}
function query( $sql, $fname = '', $tempIgnore = false ) {
- $this->lastQuery = $sql;
-
return true;
}
$this->assertTrue( $db->close(), "closing database" );
}
+ /**
+ * @covers DatabaseSqlite::insert
+ */
+ public function testInsertAffectedRows() {
+ $db = DatabaseSqlite::newStandaloneInstance( ':memory:' );
+ $db->query( 'CREATE TABLE testInsertAffectedRows ( foo )', __METHOD__ );
+
+ $insertion = $db->insert(
+ 'testInsertAffectedRows',
+ [
+ [ 'foo' => 10 ],
+ [ 'foo' => 12 ],
+ [ 'foo' => 1555 ],
+ ],
+ __METHOD__
+ );
+ $this->assertTrue( $insertion, "Insertion worked" );
+
+ $this->assertSame( 3, $db->affectedRows() );
+ $this->assertTrue( $db->close(), "closing database" );
+ }
+
private function prepareTestDB( $version ) {
static $maint = null;
if ( $maint === null ) {
$this->assertContains( 'SQLite ', $toString );
}
+
+ /**
+ * @covers \Wikimedia\Rdbms\DatabaseSqlite::getAttributes()
+ */
+ public function testsAttributes() {
+ $attributes = Database::attributesFromType( 'sqlite' );
+ $this->assertTrue( $attributes[Database::ATTR_DB_LEVEL_LOCKING] );
+ }
}