Sqlite: Improve exception handling

Introducing different exceptions for different error cases.

Change-Id: I4371d1e64d9dca2a9f68dcbaa4a891c55879c1f5
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
This commit is contained in:
Marco Bubke
2017-09-18 11:23:09 +02:00
committed by Tim Jenssen
parent bf5bc72b5a
commit a83d038208
9 changed files with 419 additions and 79 deletions

View File

@@ -61,19 +61,21 @@ using SqliteDatabaseBackendSlowTest = SqliteDatabaseBackend;
TEST_F(SqliteDatabaseBackend, OpenAlreadyOpenDatabase)
{
ASSERT_THROW(databaseBackend.open(databaseFilePath, OpenMode::ReadWrite), Exception);
ASSERT_THROW(databaseBackend.open(databaseFilePath, OpenMode::ReadWrite),
Sqlite::DatabaseIsAlreadyOpen);
}
TEST_F(SqliteDatabaseBackend, CloseAlreadyClosedDatabase)
{
databaseBackend.close();
ASSERT_THROW(databaseBackend.close(), Exception);
ASSERT_THROW(databaseBackend.close(), Sqlite::DatabaseIsAlreadyClosed);
}
TEST_F(SqliteDatabaseBackend, OpenWithWrongPath)
{
ASSERT_THROW(databaseBackend.open("/xxx/SqliteDatabaseBackendTest.db", OpenMode::ReadWrite), Exception);
ASSERT_THROW(databaseBackend.open("/xxx/SqliteDatabaseBackendTest.db", OpenMode::ReadWrite),
Sqlite::WrongFilePath);
}
TEST_F(SqliteDatabaseBackend, DefaultJournalMode)
@@ -148,7 +150,8 @@ TEST_F(SqliteDatabaseBackend, TextEncodingCannotBeChangedAfterTouchingDatabase)
databaseBackend.execute("CREATE TABLE text(name, number)");
ASSERT_THROW(databaseBackend.setTextEncoding(TextEncoding::Utf16), Exception);
ASSERT_THROW(databaseBackend.setTextEncoding(TextEncoding::Utf16),
Sqlite::PragmaValueNotSet);
}
TEST_F(SqliteDatabaseBackend, OpenModeReadOnly)